--- /dev/null
+//
+// DoubleFormatterTest.cs - NUnit Test Cases for System.DoubleFormatter
+//
+// Author:
+// Patrick Kalkman kalkman@cistron.nl
+//
+// (C) 2003 Patrick Kalkman
+//
+using NUnit.Framework;
+using System;
+using System.Threading;
+using System.Globalization;
+
+namespace MonoTests.System {
+
+ [TestFixture]
+ public class DoubleFormatterTest
+ {
+ [SetUp]
+ public void GetReady()
+ {
+ CultureInfo EnUs = new CultureInfo ("en-us");
+ EnUs.NumberFormat.CurrencyNegativePattern = 0; // -1 = (1)
+ EnUs.NumberFormat.CurrencyDecimalSeparator = ".";
+ EnUs.NumberFormat.NumberGroupSeparator = ",";
+ EnUs.NumberFormat.NumberNegativePattern = 1; // -1 = -1
+
+ //Set this culture for the current thread.
+ Thread.CurrentThread.CurrentCulture = EnUs;
+ }
+
+ [TearDown]
+ public void Clean() {}
+
+ [Test]
+ [ExpectedException(typeof(FormatException))]
+ public void TestToDecimal()
+ {
+ Double x = 1.0000001F;
+ string Result = x.ToString ("D2"); //To Decimal is for integral types only.
+ }
+
+ [Test]
+ [ExpectedException(typeof(FormatException))]
+ public void TestToHex()
+ {
+ Double x = 1.212121F;
+ string Result = x.ToString ("X2"); //To Hex is for integral types only.
+ }
+
+ [Test]
+ [ExpectedException(typeof(FormatException))]
+ public void TestToUnknown()
+ {
+ Double x = 1.212121F;
+ string Result = x.ToString ("L2"); //Invalid format.
+ }
+
+ private void FormatStringTest(int TestNumber, double Number, string Format, string ExpectedResult)
+ {
+ Assertion.AssertEquals ("DblF #" + TestNumber, ExpectedResult, Number.ToString(Format));
+ }
+
+ [Test]
+ public void TestFormatStrings()
+ {
+ FormatStringTest (0, 99999.9999996, "C", "$100,000.00");
+ FormatStringTest (1, 99999.9999996, "C0", "$100,000");
+ FormatStringTest (2, 99999.9999996, "C1", "$100,000.0");
+ FormatStringTest (3, 99999.9999996, "C2", "$100,000.00");
+ FormatStringTest (4, 99999.9999996, "C3", "$100,000.000");
+ FormatStringTest (5, 99999.9999996, "C4", "$100,000.0000");
+ FormatStringTest (6, 99999.9999996, "C5", "$100,000.00000");
+ FormatStringTest (7, 99999.9999996, "C6", "$100,000.000000");
+ FormatStringTest (8, 99999.9999996, "C7", "$99,999.9999996");
+ FormatStringTest (9, 99999.9999996, "C8", "$99,999.99999960");
+ FormatStringTest (10, 99999.9999996, "C9", "$99,999.999999600");
+ FormatStringTest (11, 99999.9999996, "C67", "$99,999.9999996000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (12, 99999.9999996, "E", "1.000000E+005");
+ FormatStringTest (13, 99999.9999996, "E0", "1E+005");
+ FormatStringTest (14, 99999.9999996, "E1", "1.0E+005");
+ FormatStringTest (15, 99999.9999996, "E2", "1.00E+005");
+ FormatStringTest (16, 99999.9999996, "E3", "1.000E+005");
+ FormatStringTest (17, 99999.9999996, "E4", "1.0000E+005");
+ FormatStringTest (18, 99999.9999996, "E5", "1.00000E+005");
+ FormatStringTest (19, 99999.9999996, "E6", "1.000000E+005");
+ FormatStringTest (20, 99999.9999996, "E7", "1.0000000E+005");
+ FormatStringTest (21, 99999.9999996, "E8", "1.00000000E+005");
+ FormatStringTest (22, 99999.9999996, "E9", "1.000000000E+005");
+ FormatStringTest (23, 99999.9999996, "E67", "9.9999999999599997000000000000000000000000000000000000000000000000000E+004");
+ FormatStringTest (24, 99999.9999996, "F", "100000.00");
+ FormatStringTest (25, 99999.9999996, "F0", "100000");
+ FormatStringTest (26, 99999.9999996, "F1", "100000.0");
+ FormatStringTest (27, 99999.9999996, "F2", "100000.00");
+ FormatStringTest (28, 99999.9999996, "F3", "100000.000");
+ FormatStringTest (29, 99999.9999996, "F4", "100000.0000");
+ FormatStringTest (30, 99999.9999996, "F5", "100000.00000");
+ FormatStringTest (31, 99999.9999996, "F6", "100000.000000");
+ FormatStringTest (32, 99999.9999996, "F7", "99999.9999996");
+ FormatStringTest (33, 99999.9999996, "F8", "99999.99999960");
+ FormatStringTest (34, 99999.9999996, "F9", "99999.999999600");
+ FormatStringTest (35, 99999.9999996, "F67", "99999.9999996000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (36, 99999.9999996, "G", "99999.9999996");
+ FormatStringTest (37, 99999.9999996, "G0", "99999.9999996");
+ FormatStringTest (38, 99999.9999996, "G1", "1E+05");
+ FormatStringTest (39, 99999.9999996, "G2", "1E+05");
+ FormatStringTest (40, 99999.9999996, "G3", "1E+05");
+ FormatStringTest (41, 99999.9999996, "G4", "1E+05");
+ FormatStringTest (42, 99999.9999996, "G5", "1E+05");
+ FormatStringTest (43, 99999.9999996, "G6", "100000");
+ FormatStringTest (44, 99999.9999996, "G7", "100000");
+ FormatStringTest (45, 99999.9999996, "G8", "100000");
+ FormatStringTest (46, 99999.9999996, "G9", "100000");
+ FormatStringTest (47, 99999.9999996, "G67", "99999.999999599997");
+ FormatStringTest (48, 99999.9999996, "N", "100,000.00");
+ FormatStringTest (49, 99999.9999996, "N0", "100,000");
+ FormatStringTest (50, 99999.9999996, "N1", "100,000.0");
+ FormatStringTest (51, 99999.9999996, "N2", "100,000.00");
+ FormatStringTest (52, 99999.9999996, "N3", "100,000.000");
+ FormatStringTest (53, 99999.9999996, "N4", "100,000.0000");
+ FormatStringTest (54, 99999.9999996, "N5", "100,000.00000");
+ FormatStringTest (55, 99999.9999996, "N6", "100,000.000000");
+ FormatStringTest (56, 99999.9999996, "N7", "99,999.9999996");
+ FormatStringTest (57, 99999.9999996, "N8", "99,999.99999960");
+ FormatStringTest (58, 99999.9999996, "N9", "99,999.999999600");
+ FormatStringTest (59, 99999.9999996, "N67", "99,999.9999996000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (60, 99999.9999996, "P", "10,000,000.00 %");
+ FormatStringTest (61, 99999.9999996, "P0", "10,000,000 %");
+ FormatStringTest (62, 99999.9999996, "P1", "10,000,000.0 %");
+ FormatStringTest (63, 99999.9999996, "P2", "10,000,000.00 %");
+ FormatStringTest (64, 99999.9999996, "P3", "10,000,000.000 %");
+ FormatStringTest (65, 99999.9999996, "P4", "10,000,000.0000 %");
+ FormatStringTest (66, 99999.9999996, "P5", "9,999,999.99996 %");
+ FormatStringTest (67, 99999.9999996, "P6", "9,999,999.999960 %");
+ FormatStringTest (68, 99999.9999996, "P7", "9,999,999.9999600 %");
+ FormatStringTest (69, 99999.9999996, "P8", "9,999,999.99996000 %");
+ FormatStringTest (70, 99999.9999996, "P9", "9,999,999.999960000 %");
+ FormatStringTest (71, 99999.9999996, "P67", "9,999,999.9999600000000000000000000000000000000000000000000000000000000000000 %");
+ FormatStringTest (72, 1.79769313486231E+308, "C", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00");
+ FormatStringTest (73, 1.79769313486231E+308, "C0", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000");
+ FormatStringTest (74, 1.79769313486231E+308, "C1", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0");
+ FormatStringTest (75, 1.79769313486231E+308, "C2", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00");
+ FormatStringTest (76, 1.79769313486231E+308, "C3", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000");
+ FormatStringTest (77, 1.79769313486231E+308, "C4", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000");
+ FormatStringTest (78, 1.79769313486231E+308, "C5", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000");
+ FormatStringTest (79, 1.79769313486231E+308, "C6", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000");
+ FormatStringTest (80, 1.79769313486231E+308, "C7", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000");
+ FormatStringTest (81, 1.79769313486231E+308, "C8", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000000");
+ FormatStringTest (82, 1.79769313486231E+308, "C9", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000000");
+ FormatStringTest (83, 1.79769313486231E+308, "C67", "$179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (84, 1.79769313486231E+308, "E", "1.797693E+308");
+ FormatStringTest (85, 1.79769313486231E+308, "E0", "2E+308");
+ FormatStringTest (86, 1.79769313486231E+308, "E1", "1.8E+308");
+ FormatStringTest (87, 1.79769313486231E+308, "E2", "1.80E+308");
+ FormatStringTest (88, 1.79769313486231E+308, "E3", "1.798E+308");
+ FormatStringTest (89, 1.79769313486231E+308, "E4", "1.7977E+308");
+ FormatStringTest (90, 1.79769313486231E+308, "E5", "1.79769E+308");
+ FormatStringTest (91, 1.79769313486231E+308, "E6", "1.797693E+308");
+ FormatStringTest (92, 1.79769313486231E+308, "E7", "1.7976931E+308");
+ FormatStringTest (93, 1.79769313486231E+308, "E8", "1.79769313E+308");
+ FormatStringTest (94, 1.79769313486231E+308, "E9", "1.797693135E+308");
+ FormatStringTest (95, 1.79769313486231E+308, "E67", "1.7976931348623099000000000000000000000000000000000000000000000000000E+308");
+ FormatStringTest (96, 1.79769313486231E+308, "F", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00");
+ FormatStringTest (97, 1.79769313486231E+308, "F0", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (98, 1.79769313486231E+308, "F1", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0");
+ FormatStringTest (99, 1.79769313486231E+308, "F2", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00");
+ FormatStringTest (100, 1.79769313486231E+308, "F3", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000");
+ FormatStringTest (101, 1.79769313486231E+308, "F4", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000");
+ FormatStringTest (102, 1.79769313486231E+308, "F5", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00000");
+ FormatStringTest (103, 1.79769313486231E+308, "F6", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000");
+ FormatStringTest (104, 1.79769313486231E+308, "F7", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000");
+ FormatStringTest (105, 1.79769313486231E+308, "F8", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00000000");
+ FormatStringTest (106, 1.79769313486231E+308, "F9", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000");
+ FormatStringTest (107, 1.79769313486231E+308, "F67", "179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (108, 1.79769313486231E+308, "G", "1.79769313486231E+308");
+ FormatStringTest (109, 1.79769313486231E+308, "G0", "1.79769313486231E+308");
+ FormatStringTest (110, 1.79769313486231E+308, "G1", "2E+308");
+ FormatStringTest (111, 1.79769313486231E+308, "G2", "1.8E+308");
+ FormatStringTest (112, 1.79769313486231E+308, "G3", "1.8E+308");
+ FormatStringTest (113, 1.79769313486231E+308, "G4", "1.798E+308");
+ FormatStringTest (114, 1.79769313486231E+308, "G5", "1.7977E+308");
+ FormatStringTest (115, 1.79769313486231E+308, "G6", "1.79769E+308");
+ FormatStringTest (116, 1.79769313486231E+308, "G7", "1.797693E+308");
+ FormatStringTest (117, 1.79769313486231E+308, "G8", "1.7976931E+308");
+ FormatStringTest (118, 1.79769313486231E+308, "G9", "1.79769313E+308");
+ FormatStringTest (119, 1.79769313486231E+308, "G67", "1.7976931348623099E+308");
+ FormatStringTest (120, 1.79769313486231E+308, "N", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00");
+ FormatStringTest (121, 1.79769313486231E+308, "N0", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000");
+ FormatStringTest (122, 1.79769313486231E+308, "N1", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0");
+ FormatStringTest (123, 1.79769313486231E+308, "N2", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00");
+ FormatStringTest (124, 1.79769313486231E+308, "N3", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000");
+ FormatStringTest (125, 1.79769313486231E+308, "N4", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000");
+ FormatStringTest (126, 1.79769313486231E+308, "N5", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000");
+ FormatStringTest (127, 1.79769313486231E+308, "N6", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000");
+ FormatStringTest (128, 1.79769313486231E+308, "N7", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000");
+ FormatStringTest (129, 1.79769313486231E+308, "N8", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000000");
+ FormatStringTest (130, 1.79769313486231E+308, "N9", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000000");
+ FormatStringTest (131, 1.79769313486231E+308, "N67", "179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (132, 1.79769313486231E+308, "P", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00 %");
+ FormatStringTest (133, 1.79769313486231E+308, "P0", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 %");
+ FormatStringTest (134, 1.79769313486231E+308, "P1", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0 %");
+ FormatStringTest (135, 1.79769313486231E+308, "P2", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00 %");
+ FormatStringTest (136, 1.79769313486231E+308, "P3", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000 %");
+ FormatStringTest (137, 1.79769313486231E+308, "P4", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000 %");
+ FormatStringTest (138, 1.79769313486231E+308, "P5", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000 %");
+ FormatStringTest (139, 1.79769313486231E+308, "P6", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000 %");
+ FormatStringTest (140, 1.79769313486231E+308, "P7", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000 %");
+ FormatStringTest (141, 1.79769313486231E+308, "P8", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000000 %");
+ FormatStringTest (142, 1.79769313486231E+308, "P9", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000000 %");
+ FormatStringTest (143, 1.79769313486231E+308, "P67", "17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000 %");
+ FormatStringTest (144, -1.79769313486231E+308, "C", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00)");
+ FormatStringTest (145, -1.79769313486231E+308, "C0", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000)");
+ FormatStringTest (146, -1.79769313486231E+308, "C1", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0)");
+ FormatStringTest (147, -1.79769313486231E+308, "C2", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00)");
+ FormatStringTest (148, -1.79769313486231E+308, "C3", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000)");
+ FormatStringTest (149, -1.79769313486231E+308, "C4", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000)");
+ FormatStringTest (150, -1.79769313486231E+308, "C5", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000)");
+ FormatStringTest (151, -1.79769313486231E+308, "C6", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000)");
+ FormatStringTest (152, -1.79769313486231E+308, "C7", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000)");
+ FormatStringTest (153, -1.79769313486231E+308, "C8", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000000)");
+ FormatStringTest (154, -1.79769313486231E+308, "C9", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000000)");
+ FormatStringTest (155, -1.79769313486231E+308, "C67", "($179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000)");
+ FormatStringTest (156, -1.79769313486231E+308, "E", "-1.797693E+308");
+ FormatStringTest (157, -1.79769313486231E+308, "E0", "-2E+308");
+ FormatStringTest (158, -1.79769313486231E+308, "E1", "-1.8E+308");
+ FormatStringTest (159, -1.79769313486231E+308, "E2", "-1.80E+308");
+ FormatStringTest (160, -1.79769313486231E+308, "E3", "-1.798E+308");
+ FormatStringTest (161, -1.79769313486231E+308, "E4", "-1.7977E+308");
+ FormatStringTest (162, -1.79769313486231E+308, "E5", "-1.79769E+308");
+ FormatStringTest (163, -1.79769313486231E+308, "E6", "-1.797693E+308");
+ FormatStringTest (164, -1.79769313486231E+308, "E7", "-1.7976931E+308");
+ FormatStringTest (165, -1.79769313486231E+308, "E8", "-1.79769313E+308");
+ FormatStringTest (166, -1.79769313486231E+308, "E9", "-1.797693135E+308");
+ FormatStringTest (167, -1.79769313486231E+308, "E67", "-1.7976931348623099000000000000000000000000000000000000000000000000000E+308");
+ FormatStringTest (168, -1.79769313486231E+308, "F", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00");
+ FormatStringTest (169, -1.79769313486231E+308, "F0", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (170, -1.79769313486231E+308, "F1", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0");
+ FormatStringTest (171, -1.79769313486231E+308, "F2", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00");
+ FormatStringTest (172, -1.79769313486231E+308, "F3", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000");
+ FormatStringTest (173, -1.79769313486231E+308, "F4", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000");
+ FormatStringTest (174, -1.79769313486231E+308, "F5", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00000");
+ FormatStringTest (175, -1.79769313486231E+308, "F6", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000");
+ FormatStringTest (176, -1.79769313486231E+308, "F7", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000");
+ FormatStringTest (177, -1.79769313486231E+308, "F8", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00000000");
+ FormatStringTest (178, -1.79769313486231E+308, "F9", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000");
+ FormatStringTest (179, -1.79769313486231E+308, "F67", "-179769313486231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (180, -1.79769313486231E+308, "G", "-1.79769313486231E+308");
+ FormatStringTest (181, -1.79769313486231E+308, "G0", "-1.79769313486231E+308");
+ FormatStringTest (182, -1.79769313486231E+308, "G1", "-2E+308");
+ FormatStringTest (183, -1.79769313486231E+308, "G2", "-1.8E+308");
+ FormatStringTest (184, -1.79769313486231E+308, "G3", "-1.8E+308");
+ FormatStringTest (185, -1.79769313486231E+308, "G4", "-1.798E+308");
+ FormatStringTest (186, -1.79769313486231E+308, "G5", "-1.7977E+308");
+ FormatStringTest (187, -1.79769313486231E+308, "G6", "-1.79769E+308");
+ FormatStringTest (188, -1.79769313486231E+308, "G7", "-1.797693E+308");
+ FormatStringTest (189, -1.79769313486231E+308, "G8", "-1.7976931E+308");
+ FormatStringTest (190, -1.79769313486231E+308, "G9", "-1.79769313E+308");
+ FormatStringTest (191, -1.79769313486231E+308, "G67", "-1.7976931348623099E+308");
+ FormatStringTest (192, -1.79769313486231E+308, "N", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00");
+ FormatStringTest (193, -1.79769313486231E+308, "N0", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000");
+ FormatStringTest (194, -1.79769313486231E+308, "N1", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0");
+ FormatStringTest (195, -1.79769313486231E+308, "N2", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00");
+ FormatStringTest (196, -1.79769313486231E+308, "N3", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000");
+ FormatStringTest (197, -1.79769313486231E+308, "N4", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000");
+ FormatStringTest (198, -1.79769313486231E+308, "N5", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000");
+ FormatStringTest (199, -1.79769313486231E+308, "N6", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000");
+ FormatStringTest (200, -1.79769313486231E+308, "N7", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000");
+ FormatStringTest (201, -1.79769313486231E+308, "N8", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000000");
+ FormatStringTest (202, -1.79769313486231E+308, "N9", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000000");
+ FormatStringTest (203, -1.79769313486231E+308, "N67", "-179,769,313,486,231,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (204, -1.79769313486231E+308, "P", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00 %");
+ FormatStringTest (205, -1.79769313486231E+308, "P0", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 %");
+ FormatStringTest (206, -1.79769313486231E+308, "P1", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0 %");
+ FormatStringTest (207, -1.79769313486231E+308, "P2", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00 %");
+ FormatStringTest (208, -1.79769313486231E+308, "P3", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000 %");
+ FormatStringTest (209, -1.79769313486231E+308, "P4", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000 %");
+ FormatStringTest (210, -1.79769313486231E+308, "P5", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000 %");
+ FormatStringTest (211, -1.79769313486231E+308, "P6", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000 %");
+ FormatStringTest (212, -1.79769313486231E+308, "P7", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000 %");
+ FormatStringTest (213, -1.79769313486231E+308, "P8", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000000 %");
+ FormatStringTest (214, -1.79769313486231E+308, "P9", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.000000000 %");
+ FormatStringTest (215, -1.79769313486231E+308, "P67", "-17,976,931,348,623,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000 %");
+ FormatStringTest (216, 1E-10, "C", "$0.00");
+ FormatStringTest (217, 1E-10, "C0", "$0");
+ FormatStringTest (218, 1E-10, "C1", "$0.0");
+ FormatStringTest (219, 1E-10, "C2", "$0.00");
+ FormatStringTest (220, 1E-10, "C3", "$0.000");
+ FormatStringTest (221, 1E-10, "C4", "$0.0000");
+ FormatStringTest (222, 1E-10, "C5", "$0.00000");
+ FormatStringTest (223, 1E-10, "C6", "$0.000000");
+ FormatStringTest (224, 1E-10, "C7", "$0.0000000");
+ FormatStringTest (225, 1E-10, "C8", "$0.00000000");
+ FormatStringTest (226, 1E-10, "C9", "$0.000000000");
+ FormatStringTest (227, 1E-10, "C67", "$0.0000000001000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (228, 1E-10, "E", "1.000000E-010");
+ FormatStringTest (229, 1E-10, "E0", "1E-010");
+ FormatStringTest (230, 1E-10, "E1", "1.0E-010");
+ FormatStringTest (231, 1E-10, "E2", "1.00E-010");
+ FormatStringTest (232, 1E-10, "E3", "1.000E-010");
+ FormatStringTest (233, 1E-10, "E4", "1.0000E-010");
+ FormatStringTest (234, 1E-10, "E5", "1.00000E-010");
+ FormatStringTest (235, 1E-10, "E6", "1.000000E-010");
+ FormatStringTest (236, 1E-10, "E7", "1.0000000E-010");
+ FormatStringTest (237, 1E-10, "E8", "1.00000000E-010");
+ FormatStringTest (238, 1E-10, "E9", "1.000000000E-010");
+ FormatStringTest (239, 1E-10, "E67", "1.0000000000000000000000000000000000000000000000000000000000000000000E-010");
+ FormatStringTest (240, 1E-10, "F", "0.00");
+ FormatStringTest (241, 1E-10, "F0", "0");
+ FormatStringTest (242, 1E-10, "F1", "0.0");
+ FormatStringTest (243, 1E-10, "F2", "0.00");
+ FormatStringTest (244, 1E-10, "F3", "0.000");
+ FormatStringTest (245, 1E-10, "F4", "0.0000");
+ FormatStringTest (246, 1E-10, "F5", "0.00000");
+ FormatStringTest (247, 1E-10, "F6", "0.000000");
+ FormatStringTest (248, 1E-10, "F7", "0.0000000");
+ FormatStringTest (249, 1E-10, "F8", "0.00000000");
+ FormatStringTest (250, 1E-10, "F9", "0.000000000");
+ FormatStringTest (251, 1E-10, "F67", "0.0000000001000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (252, 1E-10, "G", "1E-10");
+ FormatStringTest (253, 1E-10, "G0", "1E-10");
+ FormatStringTest (254, 1E-10, "G1", "1E-10");
+ FormatStringTest (255, 1E-10, "G2", "1E-10");
+ FormatStringTest (256, 1E-10, "G3", "1E-10");
+ FormatStringTest (257, 1E-10, "G4", "1E-10");
+ FormatStringTest (258, 1E-10, "G5", "1E-10");
+ FormatStringTest (259, 1E-10, "G6", "1E-10");
+ FormatStringTest (260, 1E-10, "G7", "1E-10");
+ FormatStringTest (261, 1E-10, "G8", "1E-10");
+ FormatStringTest (262, 1E-10, "G9", "1E-10");
+ FormatStringTest (263, 1E-10, "G67", "1E-10");
+ FormatStringTest (264, 1E-10, "N", "0.00");
+ FormatStringTest (265, 1E-10, "N0", "0");
+ FormatStringTest (266, 1E-10, "N1", "0.0");
+ FormatStringTest (267, 1E-10, "N2", "0.00");
+ FormatStringTest (268, 1E-10, "N3", "0.000");
+ FormatStringTest (269, 1E-10, "N4", "0.0000");
+ FormatStringTest (270, 1E-10, "N5", "0.00000");
+ FormatStringTest (271, 1E-10, "N6", "0.000000");
+ FormatStringTest (272, 1E-10, "N7", "0.0000000");
+ FormatStringTest (273, 1E-10, "N8", "0.00000000");
+ FormatStringTest (274, 1E-10, "N9", "0.000000000");
+ FormatStringTest (275, 1E-10, "N67", "0.0000000001000000000000000000000000000000000000000000000000000000000");
+ FormatStringTest (276, 1E-10, "P", "0.00 %");
+ FormatStringTest (277, 1E-10, "P0", "0 %");
+ FormatStringTest (278, 1E-10, "P1", "0.0 %");
+ FormatStringTest (279, 1E-10, "P2", "0.00 %");
+ FormatStringTest (280, 1E-10, "P3", "0.000 %");
+ FormatStringTest (281, 1E-10, "P4", "0.0000 %");
+ FormatStringTest (282, 1E-10, "P5", "0.00000 %");
+ FormatStringTest (283, 1E-10, "P6", "0.000000 %");
+ FormatStringTest (284, 1E-10, "P7", "0.0000000 %");
+ FormatStringTest (285, 1E-10, "P8", "0.00000001 %");
+ FormatStringTest (286, 1E-10, "P9", "0.000000010 %");
+ FormatStringTest (287, 1E-10, "P67", "0.0000000100000000000000000000000000000000000000000000000000000000000 %");
+ }
+ }
+}
+
+