[libcxx-commits] [libcxx] 457970d - [libc++][NFC] Format std::num_put tests

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Fri Mar 28 15:04:02 PDT 2025


Author: Nikolas Klauser
Date: 2025-03-28T23:03:42+01:00
New Revision: 457970d25d7216d793734915ab675701e50c292c

URL: https://github.com/llvm/llvm-project/commit/457970d25d7216d793734915ab675701e50c292c
DIFF: https://github.com/llvm/llvm-project/commit/457970d25d7216d793734915ab675701e50c292c.diff

LOG: [libc++][NFC] Format std::num_put tests

Added: 
    

Modified: 
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/ctor.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_bool.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.hex.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_long.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.virtuals/tested_elsewhere.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/types.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/ctor.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/ctor.pass.cpp
index 4b8079fc7a4eb..5fecc28c42ffc 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/ctor.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/ctor.pass.cpp
@@ -19,37 +19,33 @@
 
 typedef std::num_put<char, char*> F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    static int count;
+  static int count;
 
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {++count;}
+  explicit my_facet(std::size_t refs = 0) : F(refs) { ++count; }
 
-    ~my_facet() {--count;}
+  ~my_facet() { --count; }
 };
 
 int my_facet::count = 0;
 
-int main(int, char**)
-{
+int main(int, char**) {
+  {
+    std::locale l(std::locale::classic(), new my_facet);
+    assert(my_facet::count == 1);
+  }
+  assert(my_facet::count == 0);
+  {
+    my_facet f(1);
+    assert(my_facet::count == 1);
     {
-        std::locale l(std::locale::classic(), new my_facet);
-        assert(my_facet::count == 1);
+      std::locale l(std::locale::classic(), &f);
+      assert(my_facet::count == 1);
     }
-    assert(my_facet::count == 0);
-    {
-        my_facet f(1);
-        assert(my_facet::count == 1);
-        {
-            std::locale l(std::locale::classic(), &f);
-            assert(my_facet::count == 1);
-        }
-        assert(my_facet::count == 1);
-    }
-    assert(my_facet::count == 0);
+    assert(my_facet::count == 1);
+  }
+  assert(my_facet::count == 0);
 
   return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_bool.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_bool.pass.cpp
index 1ae9b639ea0ca..d62a27a0f6ae9 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_bool.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_bool.pass.cpp
@@ -21,82 +21,76 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-class my_numpunct
-    : public std::numpunct<char>
-{
+class my_numpunct : public std::numpunct<char> {
 public:
-    my_numpunct() : std::numpunct<char>() {}
+  my_numpunct() : std::numpunct<char>() {}
 
 protected:
-    virtual string_type do_truename() const {return "yes";}
-    virtual string_type do_falsename() const {return "no";}
+  virtual string_type do_truename() const { return "yes"; }
+  virtual string_type do_falsename() const { return "no"; }
 };
 
-int main(int, char**)
-{
-    const my_facet f(1);
+int main(int, char**) {
+  const my_facet f(1);
+  {
+    std::ios ios(0);
     {
-        std::ios ios(0);
-        {
-            bool v = false;
-            char str[50];
-            cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-            std::string ex(str, base(iter));
-            assert(ex == "0");
-        }
-        {
-            bool v = true;
-            char str[50];
-            cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-            std::string ex(str, base(iter));
-            assert(ex == "1");
-        }
+      bool v = false;
+      char str[50];
+      cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+      std::string ex(str, base(iter));
+      assert(ex == "0");
     }
     {
-        std::ios ios(0);
-        std::boolalpha(ios);
-        {
-            bool v = false;
-            char str[50];
-            cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-            std::string ex(str, base(iter));
-            assert(ex == "false");
-        }
-        {
-            bool v = true;
-            char str[50];
-            cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-            std::string ex(str, base(iter));
-            assert(ex == "true");
-        }
+      bool v = true;
+      char str[50];
+      cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+      std::string ex(str, base(iter));
+      assert(ex == "1");
     }
+  }
+  {
+    std::ios ios(0);
+    std::boolalpha(ios);
     {
-        std::ios ios(0);
-        std::boolalpha(ios);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        {
-            bool v = false;
-            char str[50];
-            cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-            std::string ex(str, base(iter));
-            assert(ex == "no");
-        }
-        {
-            bool v = true;
-            char str[50];
-            cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-            std::string ex(str, base(iter));
-            assert(ex == "yes");
-        }
+      bool v = false;
+      char str[50];
+      cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+      std::string ex(str, base(iter));
+      assert(ex == "false");
     }
+    {
+      bool v = true;
+      char str[50];
+      cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+      std::string ex(str, base(iter));
+      assert(ex == "true");
+    }
+  }
+  {
+    std::ios ios(0);
+    std::boolalpha(ios);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    {
+      bool v = false;
+      char str[50];
+      cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+      std::string ex(str, base(iter));
+      assert(ex == "no");
+    }
+    {
+      bool v = true;
+      char str[50];
+      cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+      std::string ex(str, base(iter));
+      assert(ex == "yes");
+    }
+  }
 
   return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.hex.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.hex.pass.cpp
index d439c07650077..dea2be771e0c6 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.hex.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.hex.pass.cpp
@@ -40,3608 +40,3600 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-class my_numpunct
-    : public std::numpunct<char>
-{
+class my_numpunct : public std::numpunct<char> {
 public:
-    my_numpunct() : std::numpunct<char>() {}
+  my_numpunct() : std::numpunct<char>() {}
 
 protected:
-    virtual char_type do_decimal_point() const {return ';';}
-    virtual char_type do_thousands_sep() const {return '_';}
-    virtual std::string do_grouping() const {return std::string("\1\2\3");}
+  virtual char_type do_decimal_point() const { return ';'; }
+  virtual char_type do_thousands_sep() const { return '_'; }
+  virtual std::string do_grouping() const { return std::string("\1\2\3"); }
 };
 
-void test1()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
+void test1() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    double v = -0.;
+    std::ios ios(0);
+    std::hexfloat(ios);
+    // %a
     {
-        double v = -0.;
-        std::ios ios(0);
-        std::hexfloat(ios);
-        // %a
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
         {
-            ios.precision(0);
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+      }
+    }
+  }
+}
+
+void test2() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    double v = 1234567890.125;
+    std::ios ios(0);
+    std::hexfloat(ios);
+    // %a
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1;26580b488p+30");
+                  assert(ios.width() == 0);
                 }
+              }
             }
-            ios.precision(1);
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1.26580B488P+30");
+                  assert(ios.width() == 0);
                 }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-            ios.precision(6);
+            std::showpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1;26580B488P+30");
+                  assert(ios.width() == 0);
                 }
+              }
             }
-            ios.precision(16);
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-            ios.precision(60);
+            std::showpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
             }
+          }
         }
-    }
-}
-
-void test2()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        double v = 1234567890.125;
-        std::ios ios(0);
-        std::hexfloat(ios);
-        // %a
+      }
+      ios.precision(6);
+      {
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
         {
-            ios.precision(0);
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1.26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x1;26580b488p+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x********1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1.26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1.26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x1;26580b488p+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0x1;26580b488p+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0x1;26580b488p+30");
+                  assert(ios.width() == 0);
                 }
+              }
             }
-            ios.precision(1);
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1;26580B488P+30");
+                  assert(ios.width() == 0);
                 }
+              }
             }
-            ios.precision(6);
+            std::showpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1.26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X1;26580B488P+30********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X********1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-            ios.precision(16);
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-            ios.precision(60);
+            std::showpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1.26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x1;26580b488p+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x********1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1.26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1.26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x1;26580b488p+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0x1;26580b488p+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1.26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X1;26580B488P+30********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X********1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1.26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1.26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X1;26580B488P+30*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0X1;26580B488P+30");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1.26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1.26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X1;26580B488P+30*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0X1;26580B488P+30");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0X1;26580B488P+30");
+                  assert(ios.width() == 0);
                 }
+              }
             }
+          }
         }
+      }
     }
+  }
 }
 
-int main(int, char**)
-{
-    test1();
-    test2();
+int main(int, char**) {
+  test1();
+  test2();
 
-    return 0;
+  return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
index d7fbfd21fe209..b131a41ceac34 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
@@ -24,14280 +24,14270 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-class my_numpunct
-    : public std::numpunct<char>
-{
+class my_numpunct : public std::numpunct<char> {
 public:
-    my_numpunct() : std::numpunct<char>() {}
+  my_numpunct() : std::numpunct<char>() {}
 
 protected:
-    virtual char_type do_decimal_point() const {return ';';}
-    virtual char_type do_thousands_sep() const {return '_';}
-    virtual std::string do_grouping() const {return std::string("\1\2\3");}
+  virtual char_type do_decimal_point() const { return ';'; }
+  virtual char_type do_thousands_sep() const { return '_'; }
+  virtual std::string do_grouping() const { return std::string("\1\2\3"); }
 };
 
-void test1()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
+void test1() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    double v = +0.;
+    std::ios ios(0);
+    // %g
     {
-        double v = +0.;
-        std::ios ios(0);
-        // %g
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
         {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+void test2() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    double v = 1234567890.125;
+    std::ios ios(0);
+    // %g
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457e+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457e+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457e+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457e+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457e+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457e+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457e+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457e+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457E+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457E+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457E+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457E+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457E+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457E+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457E+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457E+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+void test3() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    double v = +0.;
+    std::ios ios(0);
+    std::fixed(ios);
+    // %f
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+void test4() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    double v = 1234567890.125;
+    std::ios ios(0);
+    std::fixed(ios);
+    // %f
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890***************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***************1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***************1234567890");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1234567890.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************+1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**************1234567890");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1234567890.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********+1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890***************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***************1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***************1234567890");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1234567890.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************+1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**************1234567890");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1234567890.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********+1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+      }
+    }
+  }
+}
+
+void test5() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    double v = -0.;
+    std::ios ios(0);
+    std::scientific(ios);
+    // %e
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.e+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0.e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0.e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;e+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0;e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0;e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.e+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0.e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0.e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;e+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0;e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0;e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.E+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0.E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0.E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;E+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0;E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0;E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.E+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0.E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0.E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;E+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0;E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0;E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+      }
+    }
+  }
+}
+
+void test6() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    double v = 1234567890.125;
+    std::ios ios(0);
+    std::scientific(ios);
+    // %e
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2e+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2e+09");
+                  assert(ios.width() == 0);
                 }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2e+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-        }
-    }
-}
-
-void test2()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        double v = 1234567890.125;
-        std::ios ios(0);
-        // %g
-        {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457e+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457e+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457e+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457e+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457e+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457e+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457e+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457e+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457E+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457E+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457E+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457E+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457E+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457E+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457E+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457E+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2e+09*****************");
+                  assert(ios.width() == 0);
                 }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2e+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
             }
+          }
         }
-    }
-}
-
-void test3()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        double v = +0.;
-        std::ios ios(0);
-        std::fixed(ios);
-        // %f
+        std::uppercase(ios);
         {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2E+09");
+                  assert(ios.width() == 0);
                 }
+              }
             }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2E+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2E+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2E+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2E+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
         }
-    }
-}
-
-void test4()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        double v = 1234567890.125;
-        std::ios ios(0);
-        std::fixed(ios);
-        // %f
-        {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890***************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************+1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********+1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890***************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************+1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********+1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {}
-            ios.precision(60);
-            {}
-        }
-    }
-}
-
-void test5()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        double v = -0.;
-        std::ios ios(0);
-        std::scientific(ios);
-        // %e
+      }
+      ios.precision(6);
+      {
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
         {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.e+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;e+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.e+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;e+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.E+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;E+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.E+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;E+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-            }
-            ios.precision(60);
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
             }
+          }
         }
-    }
-}
-
-void test6()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        double v = 1234567890.125;
-        std::ios ios(0);
-        std::scientific(ios);
-        // %e
+        std::uppercase(ios);
         {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2e+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2e+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2e+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2e+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2E+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2E+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2E+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2E+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-            }
-            ios.precision(16);
-            {
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
                 }
+              }
             }
+          }
         }
+      }
     }
+  }
 }
 
-int main(int, char**)
-{
-    test1();
-    test2();
-    test3();
-    test4();
-    test5();
-    test6();
+int main(int, char**) {
+  test1();
+  test2();
+  test3();
+  test4();
+  test5();
+  test6();
 
   return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp
index 17d5292becdb8..c06d5fca031b2 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp
@@ -21,326 +21,320 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-class my_numpunct
-    : public std::numpunct<char>
-{
+class my_numpunct : public std::numpunct<char> {
 public:
-    my_numpunct() : std::numpunct<char>() {}
+  my_numpunct() : std::numpunct<char>() {}
 
 protected:
-    virtual char_type do_thousands_sep() const {return '_';}
-    virtual std::string do_grouping() const {return std::string("\1\2\3");}
+  virtual char_type do_thousands_sep() const { return '_'; }
+  virtual std::string do_grouping() const { return std::string("\1\2\3"); }
 };
 
-int main(int, char**)
-{
-    const my_facet f(1);
-    {
-        std::ios ios(0);
-        long v = 0;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0");
-    }
-    {
-        std::ios ios(0);
-        long v = 1;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1");
-    }
-    {
-        std::ios ios(0);
-        long v = -1;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "-1");
-    }
-    {
-        std::ios ios(0);
-        long v = -1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "-1000");
-    }
-    {
-        std::ios ios(0);
-        long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1000");
-    }
-    {
-        std::ios ios(0);
-        std::showpos(ios);
-        long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "+1000");
-    }
-    {
-        std::ios ios(0);
-        std::oct(ios);
-        long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1750");
-    }
-    {
-        std::ios ios(0);
-        std::oct(ios);
-        std::showbase(ios);
-        long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "01750");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "3e8");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        std::showbase(ios);
-        long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x3e8");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        std::showbase(ios);
-        std::uppercase(ios);
-        long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0X3E8");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::uppercase(ios);
-        long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0X3E_8");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x7f_fff_ff_f");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0_123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::right(ios);
-        ios.width(15);
-        long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "*****0_123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::left(ios);
-        ios.width(15);
-        long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0_123_46_7*****");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::internal(ios);
-        ios.width(15);
-        long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "*****0_123_46_7");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::right(ios);
-        ios.width(15);
-        long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "**0x7f_fff_ff_f");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::left(ios);
-        ios.width(15);
-        long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x7f_fff_ff_f**");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::internal(ios);
-        ios.width(15);
-        long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x**7f_fff_ff_f");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        long v = 1000;
-        std::right(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "***+1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        long v = 1000;
-        std::left(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "+1_00_0***");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        long v = 1000;
-        std::internal(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "+***1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        long v = -1000;
-        std::right(ios);
-        std::showpos(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "***-1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        long v = -1000;
-        std::left(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "-1_00_0***");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        long v = -1000;
-        std::internal(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "-***1_00_0");
-        assert(ios.width() == 0);
-    }
+int main(int, char**) {
+  const my_facet f(1);
+  {
+    std::ios ios(0);
+    long v = 0;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0");
+  }
+  {
+    std::ios ios(0);
+    long v = 1;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1");
+  }
+  {
+    std::ios ios(0);
+    long v = -1;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "-1");
+  }
+  {
+    std::ios ios(0);
+    long v = -1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "-1000");
+  }
+  {
+    std::ios ios(0);
+    long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1000");
+  }
+  {
+    std::ios ios(0);
+    std::showpos(ios);
+    long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "+1000");
+  }
+  {
+    std::ios ios(0);
+    std::oct(ios);
+    long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1750");
+  }
+  {
+    std::ios ios(0);
+    std::oct(ios);
+    std::showbase(ios);
+    long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "01750");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "3e8");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    std::showbase(ios);
+    long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x3e8");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    std::showbase(ios);
+    std::uppercase(ios);
+    long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0X3E8");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::uppercase(ios);
+    long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0X3E_8");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x7f_fff_ff_f");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0_123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::right(ios);
+    ios.width(15);
+    long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "*****0_123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::left(ios);
+    ios.width(15);
+    long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0_123_46_7*****");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::internal(ios);
+    ios.width(15);
+    long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "*****0_123_46_7");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::right(ios);
+    ios.width(15);
+    long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "**0x7f_fff_ff_f");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::left(ios);
+    ios.width(15);
+    long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x7f_fff_ff_f**");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::internal(ios);
+    ios.width(15);
+    long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x**7f_fff_ff_f");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    long v = 1000;
+    std::right(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "***+1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    long v = 1000;
+    std::left(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "+1_00_0***");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    long v = 1000;
+    std::internal(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "+***1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    long v = -1000;
+    std::right(ios);
+    std::showpos(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "***-1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    long v = -1000;
+    std::left(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "-1_00_0***");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    long v = -1000;
+    std::internal(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "-***1_00_0");
+    assert(ios.width() == 0);
+  }
 
   return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp
index ee7382e23c8c9..b9b02f5ea7b67 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp
@@ -40,3614 +40,3606 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-class my_numpunct
-    : public std::numpunct<char>
-{
+class my_numpunct : public std::numpunct<char> {
 public:
-    my_numpunct() : std::numpunct<char>() {}
+  my_numpunct() : std::numpunct<char>() {}
 
 protected:
-    virtual char_type do_decimal_point() const {return ';';}
-    virtual char_type do_thousands_sep() const {return '_';}
-    virtual std::string do_grouping() const {return std::string("\1\2\3");}
+  virtual char_type do_decimal_point() const { return ';'; }
+  virtual char_type do_thousands_sep() const { return '_'; }
+  virtual std::string do_grouping() const { return std::string("\1\2\3"); }
 };
 
-void test1()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
+void test1() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = -0.;
+    std::ios ios(0);
+    std::hexfloat(ios);
+    // %a
     {
-        long double v = -0.;
-        std::ios ios(0);
-        std::hexfloat(ios);
-        // %a
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
         {
-            ios.precision(0);
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+      }
+    }
+  }
+}
+
+void test2() {
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+#if (defined(__APPLE__) || defined(TEST_HAS_GLIBC) || defined(__MINGW32__)) && defined(__x86_64__)
+  // This test is failing on FreeBSD, possibly due to 
diff erent representations
+  // of the floating point numbers.
+  // This test is failing in MSVC environments, where long double is equal to regular
+  // double, and instead of "0x9.32c05a44p+27", this prints "0x1.26580b4880000p+30".
+  const my_facet f(1);
+  char str[200];
+  {
+    long double v = 1234567890.125;
+    std::ios ios(0);
+    std::hexfloat(ios);
+    // %a
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.width(0);
+              ios.imbue(lc);
+              {
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9;32c05a44p+27");
+                  assert(ios.width() == 0);
                 }
+              }
             }
-            ios.precision(1);
+            std::showpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9;32C05A44P+27");
+                  assert(ios.width() == 0);
                 }
+              }
             }
-            ios.precision(6);
+            std::showpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LC_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" LG_SUFFIX "p+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0x0" LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LC_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LC_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0x0" SP_LG_SUFFIX "p+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0x0" SP_LG_SUFFIX "p+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LC_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" LG_SUFFIX "P+0" PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == PADDING "-0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" PADDING "0X0" LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LC_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LC_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0X0" SP_LG_SUFFIX "P+0" SP_PADDING);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == SP_PADDING "-0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" SP_PADDING "0X0" SP_LG_SUFFIX "P+0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
                 }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-            ios.precision(16);
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-            ios.precision(60);
+            std::showpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
             }
+          }
         }
-    }
-}
-
-void test2()
-{
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-#if (defined(__APPLE__) || defined(TEST_HAS_GLIBC) || defined(__MINGW32__)) && defined(__x86_64__)
-// This test is failing on FreeBSD, possibly due to 
diff erent representations
-// of the floating point numbers.
-// This test is failing in MSVC environments, where long double is equal to regular
-// double, and instead of "0x9.32c05a44p+27", this prints "0x1.26580b4880000p+30".
-    const my_facet f(1);
-    char str[200];
-    {
-        long double v = 1234567890.125;
-        std::ios ios(0);
-        std::hexfloat(ios);
-        // %a
+      }
+      ios.precision(6);
+      {
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
         {
-            ios.precision(0);
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9.32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x9;32c05a44p+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0x*********9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                                ios.width(0);
-                            ios.imbue(lc);
-                            {
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9.32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9.32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0x9;32c05a44p+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0x9;32c05a44p+27");
+                  assert(ios.width() == 0);
                 }
+              }
             }
-            ios.precision(1);
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9;32C05A44P+27");
+                  assert(ios.width() == 0);
                 }
+              }
             }
-            ios.precision(6);
+            std::showpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9.32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X9;32C05A44P+27*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0X*********9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-            ios.precision(16);
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-            ios.precision(60);
+            std::showpoint(ios);
             {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9.32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x9;32c05a44p+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0x*********9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9.32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9.32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0x9;32c05a44p+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0x9;32c05a44p+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9.32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X9;32C05A44P+27*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0X*********9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9.32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9.32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0X9;32C05A44P+27********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********0X9;32C05A44P+27");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9.32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9.32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0X9;32C05A44P+27********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********0X9;32C05A44P+27");
+                  assert(ios.width() == 0);
                 }
+              }
             }
+          }
         }
+      }
     }
+  }
 #endif
 }
 
-int main(int, char**)
-{
-    test1();
-    test2();
+int main(int, char**) {
+  test1();
+  test2();
 
-    return 0;
+  return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
index 16e4ea7fd3808..d044898a1f828 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
@@ -25,22651 +25,22650 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-class my_numpunct
-    : public std::numpunct<char>
-{
+class my_numpunct : public std::numpunct<char> {
 public:
-    my_numpunct() : std::numpunct<char>() {}
+  my_numpunct() : std::numpunct<char>() {}
 
 protected:
-    virtual char_type do_decimal_point() const {return ';';}
-    virtual char_type do_thousands_sep() const {return '_';}
-    virtual std::string do_grouping() const {return std::string("\1\2\3");}
+  virtual char_type do_decimal_point() const { return ';'; }
+  virtual char_type do_thousands_sep() const { return '_'; }
+  virtual std::string do_grouping() const { return std::string("\1\2\3"); }
 };
 
-void test1()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
+void test1() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = +0.;
+    std::ios ios(0);
+    // %g
     {
-        long double v = +0.;
-        std::ios ios(0);
-        // %g
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
         {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+void test2() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = -0.;
+    std::ios ios(0);
+    // %g
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.00000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;00000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;00000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******-0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******-0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******-0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******-0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******-0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******-0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******-0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******0.000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******-0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******0;000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+void test3() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = 1234567890.125;
+    std::ios ios(0);
+    // %g
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457e+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457e+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457e+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457e+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457e+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457e+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457e+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1.23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457e+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1;23457e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457E+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457E+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.23457E+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;23457E+09**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457E+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457E+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.23457E+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1.23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;23457E+09*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1;23457E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1234567890.125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1234567890.125");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******1_234_567_89_0;125");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+void test4() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+
+  // This should match the underlying C library
+  std::snprintf(str, sizeof(str), "%f", INFINITY);
+  std::string inf = str;
+
+  const my_facet f(1);
+  {
+    long double v = -INFINITY;
+    std::ios ios(0);
+    // %g
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-" + inf + "*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-" + inf);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************" + inf);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-INF*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-INF");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************INF");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+      }
+    }
+  }
+}
+
+void test5() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+
+  // The output here depends on the underlying C library, so work out what
+  // that does.
+  std::snprintf(str, sizeof(str), "%f", std::nan(""));
+  std::string nan = str;
+
+  std::snprintf(str, sizeof(str), "%F", std::nan(""));
+  std::string NaN = str;
+
+  std::snprintf(str, sizeof(str), "%+f", std::nan(""));
+  std::string pnan_sign;
+  if (str[0] == '+') {
+    pnan_sign = "+";
+  }
+
+  std::string nan_padding25  = std::string(25 - nan.length(), '*');
+  std::string pnan_padding25 = std::string(25 - nan.length() - pnan_sign.length(), '*');
+
+  {
+    long double v = std::nan("");
+    std::ios ios(0);
+    // %g
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan + nan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan + nan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan + nan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan + nan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + nan + pnan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_padding25 + pnan_sign + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + pnan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + nan + pnan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_padding25 + pnan_sign + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + pnan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + nan + pnan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_padding25 + pnan_sign + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + pnan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + nan + pnan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_padding25 + pnan_sign + nan);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + pnan_padding25 + nan);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == NaN + nan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == NaN + nan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == NaN + nan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == NaN + nan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == nan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + NaN + pnan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_padding25 + pnan_sign + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + pnan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + NaN + pnan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_padding25 + pnan_sign + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + pnan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + NaN + pnan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_padding25 + pnan_sign + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + pnan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + NaN + pnan_padding25);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_padding25 + pnan_sign + NaN);
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == pnan_sign + pnan_padding25 + NaN);
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+      }
+      ios.precision(6);
+      {
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+      }
+    }
+  }
+}
+
+void test6() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = +0.;
+    std::ios ios(0);
+    std::fixed(ios);
+    // %f
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0************************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************+0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************+0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************+0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************+0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;0000000000000000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******+0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+void test7() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = -0.;
+    std::ios ios(0);
+    std::fixed(ios);
+    // %f
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0***********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********************-0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-***********************0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;**********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********************-0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-**********************0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0.0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0.0");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0*********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********************-0;0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*********************0;0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0.000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0.000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****************-0;000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-****************0;000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0.0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0000000000000000******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******-0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******0;0000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+void test8() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = 1234567890.125;
+    std::ios ios(0);
+    std::fixed(ios);
+    // %f
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890***************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***************1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***************1234567890");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1234567890.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************+1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**************1234567890");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1234567890.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********+1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890***************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***************1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***************1234567890");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0***********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************1234567890.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890**************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**************+1234567890");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**************1234567890");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0**********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "**********+1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+**********1_234_567_89_0");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************+1234567890.");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*************1234567890.");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********+1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*********1_234_567_89_0;");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.1*************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;1*********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.1************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************+1234567890.1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+************1234567890.1");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;1********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********+1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+********1_234_567_89_0;1");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1234567890.125000********");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1_234_567_89_0;125000****");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "****1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1234567890.125000*******");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******+1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******1234567890.125000");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1_234_567_89_0;125000***");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "***+1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+***1_234_567_89_0;125000");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+      }
+    }
+  }
+}
+
+void test9() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = -0.;
+    std::ios ios(0);
+    std::scientific(ios);
+    // %e
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.e+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0.e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0.e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;e+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0;e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0;e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0e+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.e+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0.e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0.e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;e+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0;e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0;e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.E+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0.E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0.E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;E+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0;E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0;E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0E+00*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************-0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*******************0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.E+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0.E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0.E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;E+00******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************-0;E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-******************0;E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0e+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0.0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0.0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;0E+00*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************-0;0E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-*****************0;0E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(6);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000e+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000e+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0.000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0.000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-0;000000E+00************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "************-0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "-************0;000000E+00");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+      }
+    }
+  }
+}
+
+void test10() {
+  char str[200];
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = 1234567890.125;
+    std::ios ios(0);
+    std::scientific(ios);
+    // %e
+    {
+      ios.precision(0);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1e+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1e+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1E+09********************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "********************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1E+09*******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*******************+1E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*******************1E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1.E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1.E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************+1;E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+******************1;E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+      }
+      ios.precision(1);
+      {
+        std::nouppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2e+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2e+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2e+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2e+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1.2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1.2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2e+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1;2e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1;2e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+        }
+        std::uppercase(ios);
+        {
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.2E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;2E+09******************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "******************1;2E+09");
+                  assert(ios.width() == 0);
                 }
+              }
             }
-        }
-    }
-}
-
-void test2()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        long double v = -0.;
-        std::ios ios(0);
-        // %g
-        {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;00000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******-0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******-0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******-0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******-0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******-0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******-0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******-0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******0.000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******-0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******0;000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;00000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2E+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2E+09");
+                  assert(ios.width() == 0);
                 }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2E+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-        }
-    }
-}
-
-void test3()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        long double v = 1234567890.125;
-        std::ios ios(0);
-        // %g
-        {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457e+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457e+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457e+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457e+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457e+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457e+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457e+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1.23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457e+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1;23457e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457E+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457E+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.23457E+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;23457E+09**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457E+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457E+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.23457E+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1.23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;23457E+09*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1;23457E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1234567890.125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******1_234_567_89_0;125");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.2E+09*****************");
+                  assert(ios.width() == 0);
                 }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1.2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1.2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;2E+09*****************");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "*****************+1;2E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+*****************1;2E+09");
+                  assert(ios.width() == 0);
+                }
+              }
             }
+          }
         }
-    }
-}
-
-void test4()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-
-    // This should match the underlying C library
-    std::snprintf(str, sizeof(str), "%f", INFINITY);
-    std::string inf = str;
-
-    const my_facet f(1);
-    {
-        long double v = -INFINITY;
-        std::ios ios(0);
-        // %g
-        {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-" + inf + "*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************" + inf);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-INF*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-INF");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************INF");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {}
-            ios.precision(60);
-            {}
-        }
-    }
-}
-
-void test5()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-
-    // The output here depends on the underlying C library, so work out what
-    // that does.
-    std::snprintf(str, sizeof(str), "%f", std::nan(""));
-    std::string nan = str;
-
-    std::snprintf(str, sizeof(str), "%F", std::nan(""));
-    std::string NaN = str;
-
-    std::snprintf(str, sizeof(str), "%+f", std::nan(""));
-    std::string pnan_sign;
-    if (str[0] == '+') {
-      pnan_sign = "+";
-    }
-
-    std::string nan_padding25  = std::string(25 - nan.length(), '*');
-    std::string pnan_padding25 = std::string(25 - nan.length() - pnan_sign.length(), '*');
-
-    {
-        long double v = std::nan("");
-        std::ios ios(0);
-        // %g
-        {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan + nan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan + nan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan + nan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan + nan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + nan + pnan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_padding25 + pnan_sign + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + pnan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + nan + pnan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_padding25 + pnan_sign + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + pnan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + nan + pnan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_padding25 + pnan_sign + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + pnan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + nan + pnan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_padding25 + pnan_sign + nan);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + pnan_padding25 + nan);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == NaN + nan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == NaN + nan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == NaN + nan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == NaN + nan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == nan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + NaN + pnan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_padding25 + pnan_sign + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + pnan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + NaN + pnan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_padding25 + pnan_sign + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + pnan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + NaN + pnan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_padding25 + pnan_sign + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + pnan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + NaN + pnan_padding25);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_padding25 + pnan_sign + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == pnan_sign + pnan_padding25 + NaN);
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {}
-            ios.precision(6);
-            {}
-            ios.precision(16);
-            {}
-            ios.precision(60);
-            {}
-        }
-    }
-}
-
-void test6()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        long double v = +0.;
-        std::ios ios(0);
-        std::fixed(ios);
-        // %f
+      }
+      ios.precision(6);
+      {
+      }
+      ios.precision(16);
+      {
+      }
+      ios.precision(60);
+      {
+        std::nouppercase(ios);
         {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0************************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************+0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************+0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************+0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************+0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;0000000000000000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******+0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
                 }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-        }
-    }
-}
-
-void test7()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        long double v = -0.;
-        std::ios ios(0);
-        std::fixed(ios);
-        // %f
-        {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0***********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********************-0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-***********************0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;**********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********************-0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-**********************0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0.0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0.0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0*********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********************-0;0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*********************0;0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0.000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****************-0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-****************0;000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0.0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0000000000000000******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******-0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******0;0000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000000000000000000000000000000000000000000000000000000000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
                 }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
             }
-        }
-    }
-}
-
-void test8()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        long double v = 1234567890.125;
-        std::ios ios(0);
-        std::fixed(ios);
-        // %f
-        {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890***************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************+1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********+1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890***************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0***********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890**************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**************+1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**************1234567890");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0**********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "**********+1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+**********1_234_567_89_0");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************+1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*************1234567890.");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********+1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*********1_234_567_89_0;");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.1*************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;1*********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.1************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************+1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+************1234567890.1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;1********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********+1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+********1_234_567_89_0;1");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1234567890.125000********");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1_234_567_89_0;125000****");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "****1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1234567890.125000*******");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******+1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******1234567890.125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1_234_567_89_0;125000***");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "***+1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+***1_234_567_89_0;125000");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {}
-            ios.precision(60);
-            {}
-        }
-    }
-}
-
-void test9()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        long double v = -0.;
-        std::ios ios(0);
-        std::scientific(ios);
-        // %e
-        {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.e+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;e+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0e+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.e+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0.e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;e+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0;e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.E+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;E+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0E+00*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************-0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*******************0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.E+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0.E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;E+00******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************-0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-******************0;E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0e+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0.0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;0E+00*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************-0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-*****************0;0E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000e+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000e+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0.000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0.000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-0;000000E+00************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "************-0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "-************0;000000E+00");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(16);
-            {
-            }
-            ios.precision(60);
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
             {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
+                  assert(ios.width() == 0);
+                }
+              }
             }
+          }
         }
-    }
-}
-
-void test10()
-{
-    char str[200];
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        long double v = 1234567890.125;
-        std::ios ios(0);
-        std::scientific(ios);
-        // %e
+        std::uppercase(ios);
         {
-            ios.precision(0);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1e+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1e+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1E+09********************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "********************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1E+09*******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*******************+1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*******************1E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1.E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************+1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+******************1;E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(1);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2e+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2e+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2e+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2e+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1.2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2e+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1;2e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.2E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;2E+09******************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "******************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2E+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2E+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.2E+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1.2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;2E+09*****************");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "*****************+1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+*****************1;2E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            ios.precision(6);
-            {
-            }
-            ios.precision(16);
-            {
-            }
-            ios.precision(60);
-            {
-                std::nouppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                }
-                std::uppercase(ios);
-                {
-                    std::noshowpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
-                    std::showpos(ios);
-                    {
-                        std::noshowpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                        std::showpoint(ios);
-                        {
-                            ios.imbue(lc);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                            ios.imbue(lg);
-                            {
-                                ios.width(0);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::left(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::right(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                                ios.width(25);
-                                std::internal(ios);
-                                {
-                                    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-                                    std::string ex(str, base(iter));
-                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
-                                    assert(ios.width() == 0);
-                                }
-                            }
-                        }
-                    }
+          std::noshowpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
                 }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
+          std::showpos(ios);
+          {
+            std::noshowpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
             }
+            std::showpoint(ios);
+            {
+              ios.imbue(lc);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+              ios.imbue(lg);
+              {
+                ios.width(0);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::left(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::right(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+                ios.width(25);
+                std::internal(ios);
+                {
+                  cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+                  std::string ex(str, base(iter));
+                  assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
+                  assert(ios.width() == 0);
+                }
+              }
+            }
+          }
         }
+      }
     }
+  }
 }
 
-int main(int, char**)
-{
-    test1();
-    test2();
-    test3();
-    test4();
-    test5();
-    test6();
-    test7();
-    test8();
-    test9();
-    test10();
-    std::locale lc = std::locale::classic();
-    std::locale lg(lc, new my_numpunct);
-    const my_facet f(1);
-    {
-        long double v = -INFINITY; ((void)v);
-    }
-    {
-        long double v = std::nan(""); ((void)v);
-    }
+int main(int, char**) {
+  test1();
+  test2();
+  test3();
+  test4();
+  test5();
+  test6();
+  test7();
+  test8();
+  test9();
+  test10();
+  std::locale lc = std::locale::classic();
+  std::locale lg(lc, new my_numpunct);
+  const my_facet f(1);
+  {
+    long double v = -INFINITY;
+    ((void)v);
+  }
+  {
+    long double v = std::nan("");
+    ((void)v);
+  }
 
-    {
-        long double v = +0.; ((void)v);
-    }
-    {
-        long double v = -INFINITY; ((void)v);
-    }
-    {
-        long double v = std::nan(""); ((void)v);
-    }
-    {
-        long double v = -INFINITY; ((void)v);
-    }
-    {
-        long double v = std::nan(""); ((void)v);
-    }
+  {
+    long double v = +0.;
+    ((void)v);
+  }
+  {
+    long double v = -INFINITY;
+    ((void)v);
+  }
+  {
+    long double v = std::nan("");
+    ((void)v);
+  }
+  {
+    long double v = -INFINITY;
+    ((void)v);
+  }
+  {
+    long double v = std::nan("");
+    ((void)v);
+  }
 
   return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_long.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_long.pass.cpp
index 106474b4c56bc..22357758b4859 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_long.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_long.pass.cpp
@@ -21,326 +21,320 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-class my_numpunct
-    : public std::numpunct<char>
-{
+class my_numpunct : public std::numpunct<char> {
 public:
-    my_numpunct() : std::numpunct<char>() {}
+  my_numpunct() : std::numpunct<char>() {}
 
 protected:
-    virtual char_type do_thousands_sep() const {return '_';}
-    virtual std::string do_grouping() const {return std::string("\1\2\3");}
+  virtual char_type do_thousands_sep() const { return '_'; }
+  virtual std::string do_grouping() const { return std::string("\1\2\3"); }
 };
 
-int main(int, char**)
-{
-    const my_facet f(1);
-    {
-        std::ios ios(0);
-        long long v = 0;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0");
-    }
-    {
-        std::ios ios(0);
-        long long v = 1;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1");
-    }
-    {
-        std::ios ios(0);
-        long long v = -1;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "-1");
-    }
-    {
-        std::ios ios(0);
-        long long v = -1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "-1000");
-    }
-    {
-        std::ios ios(0);
-        long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1000");
-    }
-    {
-        std::ios ios(0);
-        std::showpos(ios);
-        long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "+1000");
-    }
-    {
-        std::ios ios(0);
-        std::oct(ios);
-        long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1750");
-    }
-    {
-        std::ios ios(0);
-        std::oct(ios);
-        std::showbase(ios);
-        long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "01750");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "3e8");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        std::showbase(ios);
-        long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x3e8");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        std::showbase(ios);
-        std::uppercase(ios);
-        long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0X3E8");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::uppercase(ios);
-        long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0X3E_8");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        long long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x7f_fff_ff_f");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0_123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::right(ios);
-        ios.width(15);
-        long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "*****0_123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::left(ios);
-        ios.width(15);
-        long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0_123_46_7*****");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::internal(ios);
-        ios.width(15);
-        long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "*****0_123_46_7");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::right(ios);
-        ios.width(15);
-        long long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "**0x7f_fff_ff_f");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::left(ios);
-        ios.width(15);
-        long long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x7f_fff_ff_f**");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::internal(ios);
-        ios.width(15);
-        long long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x**7f_fff_ff_f");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        long long v = 1000;
-        std::right(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "***+1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        long long v = 1000;
-        std::left(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "+1_00_0***");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        long long v = 1000;
-        std::internal(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "+***1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        long long v = -1000;
-        std::right(ios);
-        std::showpos(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "***-1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        long long v = -1000;
-        std::left(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "-1_00_0***");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        long long v = -1000;
-        std::internal(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "-***1_00_0");
-        assert(ios.width() == 0);
-    }
+int main(int, char**) {
+  const my_facet f(1);
+  {
+    std::ios ios(0);
+    long long v = 0;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0");
+  }
+  {
+    std::ios ios(0);
+    long long v = 1;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1");
+  }
+  {
+    std::ios ios(0);
+    long long v = -1;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "-1");
+  }
+  {
+    std::ios ios(0);
+    long long v = -1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "-1000");
+  }
+  {
+    std::ios ios(0);
+    long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1000");
+  }
+  {
+    std::ios ios(0);
+    std::showpos(ios);
+    long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "+1000");
+  }
+  {
+    std::ios ios(0);
+    std::oct(ios);
+    long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1750");
+  }
+  {
+    std::ios ios(0);
+    std::oct(ios);
+    std::showbase(ios);
+    long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "01750");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "3e8");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    std::showbase(ios);
+    long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x3e8");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    std::showbase(ios);
+    std::uppercase(ios);
+    long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0X3E8");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::uppercase(ios);
+    long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0X3E_8");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    long long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x7f_fff_ff_f");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0_123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::right(ios);
+    ios.width(15);
+    long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "*****0_123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::left(ios);
+    ios.width(15);
+    long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0_123_46_7*****");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::internal(ios);
+    ios.width(15);
+    long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "*****0_123_46_7");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::right(ios);
+    ios.width(15);
+    long long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "**0x7f_fff_ff_f");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::left(ios);
+    ios.width(15);
+    long long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x7f_fff_ff_f**");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::internal(ios);
+    ios.width(15);
+    long long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x**7f_fff_ff_f");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    long long v = 1000;
+    std::right(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "***+1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    long long v = 1000;
+    std::left(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "+1_00_0***");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    long long v = 1000;
+    std::internal(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "+***1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    long long v = -1000;
+    std::right(ios);
+    std::showpos(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "***-1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    long long v = -1000;
+    std::left(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "-1_00_0***");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    long long v = -1000;
+    std::internal(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "-***1_00_0");
+    assert(ios.width() == 0);
+  }
 
   return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp
index 13152742d5fe3..df2ed100e200d 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp
@@ -21,31 +21,27 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-int main(int, char**)
-{
-    const my_facet f(1);
-    {
-        std::ios ios(0);
-        void* v = 0;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        char expected_str[32] = {};
-        // num_put::put uses %p for pointer types, but the exact format of %p is
-        // implementation defined behavior for the C library. Compare output to
-        // snprintf for portability.
-        int rc = snprintf(expected_str, sizeof(expected_str), "%p", v);
-        assert(rc > 0);
-        assert(ex == expected_str);
-    }
+int main(int, char**) {
+  const my_facet f(1);
+  {
+    std::ios ios(0);
+    void* v = 0;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    char expected_str[32] = {};
+    // num_put::put uses %p for pointer types, but the exact format of %p is
+    // implementation defined behavior for the C library. Compare output to
+    // snprintf for portability.
+    int rc = snprintf(expected_str, sizeof(expected_str), "%p", v);
+    assert(rc > 0);
+    assert(ex == expected_str);
+  }
 
   return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp
index 2bb5cc30308df..a630282800303 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp
@@ -21,329 +21,320 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-class my_numpunct
-    : public std::numpunct<char>
-{
+class my_numpunct : public std::numpunct<char> {
 public:
-    my_numpunct() : std::numpunct<char>() {}
+  my_numpunct() : std::numpunct<char>() {}
 
 protected:
-    virtual char_type do_thousands_sep() const {return '_';}
-    virtual std::string do_grouping() const {return std::string("\1\2\3");}
+  virtual char_type do_thousands_sep() const { return '_'; }
+  virtual std::string do_grouping() const { return std::string("\1\2\3"); }
 };
 
-int main(int, char**)
-{
-    const my_facet f(1);
-    {
-        std::ios ios(0);
-        unsigned long v = 0;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0");
-    }
-    {
-        std::ios ios(0);
-        unsigned long v = 1;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1");
-    }
-    {
-        std::ios ios(0);
-        unsigned long v = static_cast<unsigned long>(-1);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == (sizeof(unsigned long) == 4 ? "4294967295" : "18446744073709551615"));
-    }
-    {
-        std::ios ios(0);
-        unsigned long v = static_cast<unsigned long>(-1000);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == (sizeof(unsigned long) == 4 ? "4294966296" : "18446744073709550616"));
-    }
-    {
-        std::ios ios(0);
-        unsigned long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1000");
-    }
-    {
-        std::ios ios(0);
-        std::showpos(ios);
-        unsigned long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1000");
-    }
-    {
-        std::ios ios(0);
-        std::oct(ios);
-        unsigned long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1750");
-    }
-    {
-        std::ios ios(0);
-        std::oct(ios);
-        std::showbase(ios);
-        unsigned long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "01750");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        unsigned long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "3e8");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        std::showbase(ios);
-        unsigned long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x3e8");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        std::showbase(ios);
-        std::uppercase(ios);
-        unsigned long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0X3E8");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::uppercase(ios);
-        unsigned long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0X3E_8");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        unsigned long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x7f_fff_ff_f");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        unsigned long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        unsigned long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0_123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::right(ios);
-        ios.width(15);
-        unsigned long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "*****0_123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::left(ios);
-        ios.width(15);
-        unsigned long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0_123_46_7*****");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::internal(ios);
-        ios.width(15);
-        unsigned long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "*****0_123_46_7");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::right(ios);
-        ios.width(15);
-        unsigned long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "**0x7f_fff_ff_f");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::left(ios);
-        ios.width(15);
-        unsigned long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x7f_fff_ff_f**");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::internal(ios);
-        ios.width(15);
-        unsigned long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x**7f_fff_ff_f");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        unsigned long v = 1000;
-        std::right(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "****1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        unsigned long v = 1000;
-        std::left(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1_00_0****");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        unsigned long v = 1000;
-        std::internal(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "****1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        unsigned long v = static_cast<unsigned long>(-1000);
-        std::right(ios);
-        std::showpos(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == (sizeof(unsigned long) == 4 ? "4_294_966_29_6"
-                                                 : "18_446_744_073_709_550_61_6"));
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        unsigned long v = static_cast<unsigned long>(-1000);
-        std::left(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == (sizeof(unsigned long) == 4 ? "4_294_966_29_6"
-                                                 : "18_446_744_073_709_550_61_6"));
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        unsigned long v = static_cast<unsigned long>(-1000);
-        std::internal(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == (sizeof(unsigned long) == 4 ? "4_294_966_29_6"
-                                                 : "18_446_744_073_709_550_61_6"));
-        assert(ios.width() == 0);
-    }
+int main(int, char**) {
+  const my_facet f(1);
+  {
+    std::ios ios(0);
+    unsigned long v = 0;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0");
+  }
+  {
+    std::ios ios(0);
+    unsigned long v = 1;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1");
+  }
+  {
+    std::ios ios(0);
+    unsigned long v = static_cast<unsigned long>(-1);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == (sizeof(unsigned long) == 4 ? "4294967295" : "18446744073709551615"));
+  }
+  {
+    std::ios ios(0);
+    unsigned long v = static_cast<unsigned long>(-1000);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == (sizeof(unsigned long) == 4 ? "4294966296" : "18446744073709550616"));
+  }
+  {
+    std::ios ios(0);
+    unsigned long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1000");
+  }
+  {
+    std::ios ios(0);
+    std::showpos(ios);
+    unsigned long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1000");
+  }
+  {
+    std::ios ios(0);
+    std::oct(ios);
+    unsigned long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1750");
+  }
+  {
+    std::ios ios(0);
+    std::oct(ios);
+    std::showbase(ios);
+    unsigned long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "01750");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    unsigned long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "3e8");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    std::showbase(ios);
+    unsigned long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x3e8");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    std::showbase(ios);
+    std::uppercase(ios);
+    unsigned long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0X3E8");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::uppercase(ios);
+    unsigned long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0X3E_8");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    unsigned long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x7f_fff_ff_f");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    unsigned long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    unsigned long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0_123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::right(ios);
+    ios.width(15);
+    unsigned long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "*****0_123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::left(ios);
+    ios.width(15);
+    unsigned long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0_123_46_7*****");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::internal(ios);
+    ios.width(15);
+    unsigned long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "*****0_123_46_7");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::right(ios);
+    ios.width(15);
+    unsigned long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "**0x7f_fff_ff_f");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::left(ios);
+    ios.width(15);
+    unsigned long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x7f_fff_ff_f**");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::internal(ios);
+    ios.width(15);
+    unsigned long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x**7f_fff_ff_f");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    unsigned long v = 1000;
+    std::right(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "****1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    unsigned long v = 1000;
+    std::left(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1_00_0****");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    unsigned long v = 1000;
+    std::internal(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "****1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    unsigned long v = static_cast<unsigned long>(-1000);
+    std::right(ios);
+    std::showpos(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == (sizeof(unsigned long) == 4 ? "4_294_966_29_6" : "18_446_744_073_709_550_61_6"));
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    unsigned long v = static_cast<unsigned long>(-1000);
+    std::left(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == (sizeof(unsigned long) == 4 ? "4_294_966_29_6" : "18_446_744_073_709_550_61_6"));
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    unsigned long v = static_cast<unsigned long>(-1000);
+    std::internal(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == (sizeof(unsigned long) == 4 ? "4_294_966_29_6" : "18_446_744_073_709_550_61_6"));
+    assert(ios.width() == 0);
+  }
 
   return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp
index f5956305a0d5a..fff248bd36c62 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp
@@ -21,326 +21,320 @@
 
 typedef std::num_put<char, cpp17_output_iterator<char*> > F;
 
-class my_facet
-    : public F
-{
+class my_facet : public F {
 public:
-    explicit my_facet(std::size_t refs = 0)
-        : F(refs) {}
+  explicit my_facet(std::size_t refs = 0) : F(refs) {}
 };
 
-class my_numpunct
-    : public std::numpunct<char>
-{
+class my_numpunct : public std::numpunct<char> {
 public:
-    my_numpunct() : std::numpunct<char>() {}
+  my_numpunct() : std::numpunct<char>() {}
 
 protected:
-    virtual char_type do_thousands_sep() const {return '_';}
-    virtual std::string do_grouping() const {return std::string("\1\2\3");}
+  virtual char_type do_thousands_sep() const { return '_'; }
+  virtual std::string do_grouping() const { return std::string("\1\2\3"); }
 };
 
-int main(int, char**)
-{
-    const my_facet f(1);
-    {
-        std::ios ios(0);
-        unsigned long long v = 0;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0");
-    }
-    {
-        std::ios ios(0);
-        unsigned long long v = 1;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1");
-    }
-    {
-        std::ios ios(0);
-        unsigned long long v = static_cast<unsigned long long>(-1);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "18446744073709551615");
-    }
-    {
-        std::ios ios(0);
-        unsigned long long v = static_cast<unsigned long long>(-1000);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "18446744073709550616");
-    }
-    {
-        std::ios ios(0);
-        unsigned long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1000");
-    }
-    {
-        std::ios ios(0);
-        std::showpos(ios);
-        unsigned long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1000");
-    }
-    {
-        std::ios ios(0);
-        std::oct(ios);
-        unsigned long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1750");
-    }
-    {
-        std::ios ios(0);
-        std::oct(ios);
-        std::showbase(ios);
-        unsigned long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "01750");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        unsigned long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "3e8");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        std::showbase(ios);
-        unsigned long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x3e8");
-    }
-    {
-        std::ios ios(0);
-        std::hex(ios);
-        std::showbase(ios);
-        std::uppercase(ios);
-        unsigned long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0X3E8");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::uppercase(ios);
-        unsigned long long v = 1000;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0X3E_8");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        unsigned long long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x7f_fff_ff_f");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        unsigned long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        unsigned long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0_123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::right(ios);
-        ios.width(15);
-        unsigned long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "*****0_123_46_7");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::left(ios);
-        ios.width(15);
-        unsigned long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0_123_46_7*****");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::oct(ios);
-        std::showbase(ios);
-        std::internal(ios);
-        ios.width(15);
-        unsigned long long v = 0123467;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "*****0_123_46_7");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::right(ios);
-        ios.width(15);
-        unsigned long long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "**0x7f_fff_ff_f");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::left(ios);
-        ios.width(15);
-        unsigned long long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x7f_fff_ff_f**");
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::hex(ios);
-        std::showbase(ios);
-        std::internal(ios);
-        ios.width(15);
-        unsigned long long v = 2147483647;
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "0x**7f_fff_ff_f");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        unsigned long long v = 1000;
-        std::right(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "****1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        unsigned long long v = 1000;
-        std::left(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "1_00_0****");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        std::showpos(ios);
-        unsigned long long v = 1000;
-        std::internal(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "****1_00_0");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        unsigned long long v = static_cast<unsigned long long>(-1000);
-        std::right(ios);
-        std::showpos(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "18_446_744_073_709_550_61_6");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        unsigned long long v = static_cast<unsigned long long>(-1000);
-        std::left(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "18_446_744_073_709_550_61_6");
-        assert(ios.width() == 0);
-    }
-    {
-        std::ios ios(0);
-        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
-        unsigned long long v = static_cast<unsigned long long>(-1000);
-        std::internal(ios);
-        ios.width(10);
-        char str[50];
-        cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
-        std::string ex(str, base(iter));
-        assert(ex == "18_446_744_073_709_550_61_6");
-        assert(ios.width() == 0);
-    }
+int main(int, char**) {
+  const my_facet f(1);
+  {
+    std::ios ios(0);
+    unsigned long long v = 0;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0");
+  }
+  {
+    std::ios ios(0);
+    unsigned long long v = 1;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1");
+  }
+  {
+    std::ios ios(0);
+    unsigned long long v = static_cast<unsigned long long>(-1);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "18446744073709551615");
+  }
+  {
+    std::ios ios(0);
+    unsigned long long v = static_cast<unsigned long long>(-1000);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "18446744073709550616");
+  }
+  {
+    std::ios ios(0);
+    unsigned long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1000");
+  }
+  {
+    std::ios ios(0);
+    std::showpos(ios);
+    unsigned long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1000");
+  }
+  {
+    std::ios ios(0);
+    std::oct(ios);
+    unsigned long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1750");
+  }
+  {
+    std::ios ios(0);
+    std::oct(ios);
+    std::showbase(ios);
+    unsigned long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "01750");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    unsigned long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "3e8");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    std::showbase(ios);
+    unsigned long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x3e8");
+  }
+  {
+    std::ios ios(0);
+    std::hex(ios);
+    std::showbase(ios);
+    std::uppercase(ios);
+    unsigned long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0X3E8");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::uppercase(ios);
+    unsigned long long v = 1000;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0X3E_8");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    unsigned long long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x7f_fff_ff_f");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    unsigned long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    unsigned long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0_123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::right(ios);
+    ios.width(15);
+    unsigned long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "*****0_123_46_7");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::left(ios);
+    ios.width(15);
+    unsigned long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0_123_46_7*****");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::oct(ios);
+    std::showbase(ios);
+    std::internal(ios);
+    ios.width(15);
+    unsigned long long v = 0123467;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "*****0_123_46_7");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::right(ios);
+    ios.width(15);
+    unsigned long long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "**0x7f_fff_ff_f");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::left(ios);
+    ios.width(15);
+    unsigned long long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x7f_fff_ff_f**");
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::hex(ios);
+    std::showbase(ios);
+    std::internal(ios);
+    ios.width(15);
+    unsigned long long v = 2147483647;
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "0x**7f_fff_ff_f");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    unsigned long long v = 1000;
+    std::right(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "****1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    unsigned long long v = 1000;
+    std::left(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "1_00_0****");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    std::showpos(ios);
+    unsigned long long v = 1000;
+    std::internal(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "****1_00_0");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    unsigned long long v = static_cast<unsigned long long>(-1000);
+    std::right(ios);
+    std::showpos(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "18_446_744_073_709_550_61_6");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    unsigned long long v = static_cast<unsigned long long>(-1000);
+    std::left(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "18_446_744_073_709_550_61_6");
+    assert(ios.width() == 0);
+  }
+  {
+    std::ios ios(0);
+    ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
+    unsigned long long v = static_cast<unsigned long long>(-1000);
+    std::internal(ios);
+    ios.width(10);
+    char str[50];
+    cpp17_output_iterator<char*> iter = f.put(cpp17_output_iterator<char*>(str), ios, '*', v);
+    std::string ex(str, base(iter));
+    assert(ex == "18_446_744_073_709_550_61_6");
+    assert(ios.width() == 0);
+  }
 
   return 0;
 }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.virtuals/tested_elsewhere.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.virtuals/tested_elsewhere.pass.cpp
index 1f764da05d6b5..3e0d2a6570f42 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.virtuals/tested_elsewhere.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.virtuals/tested_elsewhere.pass.cpp
@@ -6,8 +6,4 @@
 //
 //===----------------------------------------------------------------------===//
 
-int main(int, char**)
-{
-
-  return 0;
-}
+int main(int, char**) { return 0; }

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/types.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/types.pass.cpp
index aef9494d47936..55d67b5d4ccbf 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/types.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/types.pass.cpp
@@ -22,16 +22,15 @@
 
 #include "test_macros.h"
 
-int main(int, char**)
-{
-    static_assert((std::is_base_of<std::locale::facet, std::num_put<char> >::value), "");
-    static_assert((std::is_same<std::num_put<char>::char_type, char>::value), "");
-    static_assert((std::is_same<std::num_put<char>::iter_type, std::ostreambuf_iterator<char> >::value), "");
+int main(int, char**) {
+  static_assert((std::is_base_of<std::locale::facet, std::num_put<char> >::value), "");
+  static_assert((std::is_same<std::num_put<char>::char_type, char>::value), "");
+  static_assert((std::is_same<std::num_put<char>::iter_type, std::ostreambuf_iterator<char> >::value), "");
 
 #ifndef TEST_HAS_NO_WIDE_CHARACTERS
-    static_assert((std::is_base_of<std::locale::facet, std::num_put<wchar_t> >::value), "");
-    static_assert((std::is_same<std::num_put<wchar_t>::char_type, wchar_t>::value), "");
-    static_assert((std::is_same<std::num_put<wchar_t>::iter_type, std::ostreambuf_iterator<wchar_t> >::value), "");
+  static_assert((std::is_base_of<std::locale::facet, std::num_put<wchar_t> >::value), "");
+  static_assert((std::is_same<std::num_put<wchar_t>::char_type, wchar_t>::value), "");
+  static_assert((std::is_same<std::num_put<wchar_t>::iter_type, std::ostreambuf_iterator<wchar_t> >::value), "");
 #endif
 
   return 0;


        


More information about the libcxx-commits mailing list