2 // SingleFormatterTest.cs - NUnit Test Cases for System.SingleFormatter
5 // Patrick Kalkman kalkman@cistron.nl
7 // (C) 2003 Patrick Kalkman
11 using System.Threading;
12 using System.Globalization;
14 namespace MonoTests.System
17 public class SingleFormatterTest
19 CultureInfo old_culture;
24 old_culture = Thread.CurrentThread.CurrentCulture;
26 CultureInfo EnUs = new CultureInfo ("en-US", false);
27 EnUs.NumberFormat.CurrencyNegativePattern = 0; // -1 = (1)
28 EnUs.NumberFormat.CurrencyDecimalSeparator = ".";
29 EnUs.NumberFormat.NumberGroupSeparator = ",";
30 EnUs.NumberFormat.NumberNegativePattern = 1; // -1 = -1
31 EnUs.NumberFormat.NumberDecimalDigits = 2;
33 //Set this culture for the current thread.
34 Thread.CurrentThread.CurrentCulture = EnUs;
38 public void TearDown ()
40 Thread.CurrentThread.CurrentCulture = old_culture;
44 [ExpectedException(typeof(FormatException))]
45 public void TestToDecimal()
47 Single x = 1.0000001F;
48 string Result = x.ToString ("D2"); //To Decimal is for integral types only.
52 [ExpectedException(typeof(FormatException))]
53 public void TestToHex()
56 string Result = x.ToString ("X2"); //To Hex is for integral types only.
60 [ExpectedException(typeof(FormatException))]
61 public void TestToUnknown()
64 string Result = x.ToString ("L2"); //Invalid format.
67 private void FormatStringTest(int TestNumber, float Number, string Format, string ExpectedResult)
69 Assert.AreEqual (ExpectedResult, Number.ToString(Format), "SngF #" + TestNumber);
72 string GetPercent (string s)
74 switch (NumberFormatInfo.CurrentInfo.PercentPositivePattern) {
75 case 0: return s + " %";
76 case 1: return s + "%";
77 default: return "%" + s;
82 public void TestFormatStrings()
84 FormatStringTest (0, 121212F, "C", "$121,212.00");
85 FormatStringTest (1, 121212F, "C0", "$121,212");
86 FormatStringTest (2, 121212F, "C1", "$121,212.0");
87 FormatStringTest (3, 121212F, "C2", "$121,212.00");
88 FormatStringTest (4, 121212F, "C3", "$121,212.000");
89 FormatStringTest (5, 121212F, "C4", "$121,212.0000");
90 FormatStringTest (6, 121212F, "C5", "$121,212.00000");
91 FormatStringTest (7, 121212F, "C6", "$121,212.000000");
92 FormatStringTest (8, 121212F, "C7", "$121,212.0000000");
93 FormatStringTest (9, 121212F, "C8", "$121,212.00000000");
94 FormatStringTest (10, 121212F, "C9", "$121,212.000000000");
95 FormatStringTest (11, 121212F, "C67", "$121,212.0000000000000000000000000000000000000000000000000000000000000000000");
96 FormatStringTest (12, 121212F, "E", "1.212120E+005");
97 FormatStringTest (13, 121212F, "E0", "1E+005");
98 FormatStringTest (14, 121212F, "E1", "1.2E+005");
99 FormatStringTest (15, 121212F, "E2", "1.21E+005");
100 FormatStringTest (16, 121212F, "E3", "1.212E+005");
101 FormatStringTest (17, 121212F, "E4", "1.2121E+005");
102 FormatStringTest (18, 121212F, "E5", "1.21212E+005");
103 FormatStringTest (19, 121212F, "E6", "1.212120E+005");
104 FormatStringTest (20, 121212F, "E7", "1.2121200E+005");
105 FormatStringTest (21, 121212F, "E8", "1.21212000E+005");
106 FormatStringTest (22, 121212F, "E9", "1.212120000E+005");
107 FormatStringTest (23, 121212F, "E67", "1.2121200000000000000000000000000000000000000000000000000000000000000E+005");
108 FormatStringTest (24, 121212F, "F", "121212.00");
109 FormatStringTest (25, 121212F, "F0", "121212");
110 FormatStringTest (26, 121212F, "F1", "121212.0");
111 FormatStringTest (27, 121212F, "F2", "121212.00");
112 FormatStringTest (28, 121212F, "F3", "121212.000");
113 FormatStringTest (29, 121212F, "F4", "121212.0000");
114 FormatStringTest (30, 121212F, "F5", "121212.00000");
115 FormatStringTest (31, 121212F, "F6", "121212.000000");
116 FormatStringTest (32, 121212F, "F7", "121212.0000000");
117 FormatStringTest (33, 121212F, "F8", "121212.00000000");
118 FormatStringTest (34, 121212F, "F9", "121212.000000000");
119 FormatStringTest (35, 121212F, "F67", "121212.0000000000000000000000000000000000000000000000000000000000000000000");
120 FormatStringTest (36, 121212F, "G", "121212");
121 FormatStringTest (37, 121212F, "G0", "121212");
122 FormatStringTest (38, 121212F, "G1", "1E+05");
123 FormatStringTest (39, 121212F, "G2", "1.2E+05");
124 FormatStringTest (40, 121212F, "G3", "1.21E+05");
125 FormatStringTest (41, 121212F, "G4", "1.212E+05");
126 FormatStringTest (42, 121212F, "G5", "1.2121E+05");
127 FormatStringTest (43, 121212F, "G6", "121212");
128 FormatStringTest (44, 121212F, "G7", "121212");
129 FormatStringTest (45, 121212F, "G8", "121212");
130 FormatStringTest (46, 121212F, "G9", "121212");
131 FormatStringTest (47, 121212F, "G67", "121212");
132 FormatStringTest (48, 121212F, "N", "121,212.00");
133 FormatStringTest (49, 121212F, "N0", "121,212");
134 FormatStringTest (50, 121212F, "N1", "121,212.0");
135 FormatStringTest (51, 121212F, "N2", "121,212.00");
136 FormatStringTest (52, 121212F, "N3", "121,212.000");
137 FormatStringTest (53, 121212F, "N4", "121,212.0000");
138 FormatStringTest (54, 121212F, "N5", "121,212.00000");
139 FormatStringTest (55, 121212F, "N6", "121,212.000000");
140 FormatStringTest (56, 121212F, "N7", "121,212.0000000");
141 FormatStringTest (57, 121212F, "N8", "121,212.00000000");
142 FormatStringTest (58, 121212F, "N9", "121,212.000000000");
143 FormatStringTest (59, 121212F, "N67", "121,212.0000000000000000000000000000000000000000000000000000000000000000000");
144 FormatStringTest (60, 121212F, "P", GetPercent ("12,121,200.00"));
145 FormatStringTest (61, 121212F, "P0", GetPercent ("12,121,200"));
146 FormatStringTest (62, 121212F, "P1", GetPercent ("12,121,200.0"));
147 FormatStringTest (63, 121212F, "P2", GetPercent ("12,121,200.00"));
148 FormatStringTest (64, 121212F, "P3", GetPercent ("12,121,200.000"));
149 FormatStringTest (65, 121212F, "P4", GetPercent ("12,121,200.0000"));
150 FormatStringTest (66, 121212F, "P5", GetPercent ("12,121,200.00000"));
151 FormatStringTest (67, 121212F, "P6", GetPercent ("12,121,200.000000"));
152 FormatStringTest (68, 121212F, "P7", GetPercent ("12,121,200.0000000"));
153 FormatStringTest (69, 121212F, "P8", GetPercent ("12,121,200.00000000"));
154 FormatStringTest (70, 121212F, "P9", GetPercent ("12,121,200.000000000"));
155 FormatStringTest (71, 121212F, "P67", GetPercent ("12,121,200.0000000000000000000000000000000000000000000000000000000000000000000"));
156 FormatStringTest (72, 3.402823E+38F, "C", "$340,282,300,000,000,000,000,000,000,000,000,000,000.00");
157 FormatStringTest (73, 3.402823E+38F, "C0", "$340,282,300,000,000,000,000,000,000,000,000,000,000");
158 FormatStringTest (74, 3.402823E+38F, "C1", "$340,282,300,000,000,000,000,000,000,000,000,000,000.0");
159 FormatStringTest (75, 3.402823E+38F, "C2", "$340,282,300,000,000,000,000,000,000,000,000,000,000.00");
160 FormatStringTest (76, 3.402823E+38F, "C3", "$340,282,300,000,000,000,000,000,000,000,000,000,000.000");
161 FormatStringTest (77, 3.402823E+38F, "C4", "$340,282,300,000,000,000,000,000,000,000,000,000,000.0000");
162 FormatStringTest (78, 3.402823E+38F, "C5", "$340,282,300,000,000,000,000,000,000,000,000,000,000.00000");
163 FormatStringTest (79, 3.402823E+38F, "C6", "$340,282,300,000,000,000,000,000,000,000,000,000,000.000000");
164 FormatStringTest (80, 3.402823E+38F, "C7", "$340,282,300,000,000,000,000,000,000,000,000,000,000.0000000");
165 FormatStringTest (81, 3.402823E+38F, "C8", "$340,282,300,000,000,000,000,000,000,000,000,000,000.00000000");
166 FormatStringTest (82, 3.402823E+38F, "C9", "$340,282,300,000,000,000,000,000,000,000,000,000,000.000000000");
167 FormatStringTest (83, 3.402823E+38F, "C67", "$340,282,300,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000");
168 FormatStringTest (84, 3.402823E+38F, "E", "3.402823E+038");
169 FormatStringTest (85, 3.402823E+38F, "E0", "3E+038");
170 FormatStringTest (86, 3.402823E+38F, "E1", "3.4E+038");
171 FormatStringTest (87, 3.402823E+38F, "E2", "3.40E+038");
172 FormatStringTest (88, 3.402823E+38F, "E3", "3.403E+038");
173 FormatStringTest (89, 3.402823E+38F, "E4", "3.4028E+038");
174 FormatStringTest (90, 3.402823E+38F, "E5", "3.40282E+038");
175 FormatStringTest (91, 3.402823E+38F, "E6", "3.402823E+038");
176 FormatStringTest (92, 3.402823E+38F, "E7", "3.4028231E+038");
177 FormatStringTest (93, 3.402823E+38F, "E8", "3.40282306E+038");
178 FormatStringTest (94, 3.402823E+38F, "E9", "3.402823060E+038");
179 FormatStringTest (95, 3.402823E+38F, "E67", "3.4028230600000000000000000000000000000000000000000000000000000000000E+038");
180 FormatStringTest (96, 3.402823E+38F, "F", "340282300000000000000000000000000000000.00");
181 FormatStringTest (97, 3.402823E+38F, "F0", "340282300000000000000000000000000000000");
182 FormatStringTest (98, 3.402823E+38F, "F1", "340282300000000000000000000000000000000.0");
183 FormatStringTest (99, 3.402823E+38F, "F2", "340282300000000000000000000000000000000.00");
184 FormatStringTest (100, 3.402823E+38F, "F3", "340282300000000000000000000000000000000.000");
185 FormatStringTest (101, 3.402823E+38F, "F4", "340282300000000000000000000000000000000.0000");
186 FormatStringTest (102, 3.402823E+38F, "F5", "340282300000000000000000000000000000000.00000");
187 FormatStringTest (103, 3.402823E+38F, "F6", "340282300000000000000000000000000000000.000000");
188 FormatStringTest (104, 3.402823E+38F, "F7", "340282300000000000000000000000000000000.0000000");
189 FormatStringTest (105, 3.402823E+38F, "F8", "340282300000000000000000000000000000000.00000000");
190 FormatStringTest (106, 3.402823E+38F, "F9", "340282300000000000000000000000000000000.000000000");
191 FormatStringTest (107, 3.402823E+38F, "F67", "340282300000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000000000000");
192 FormatStringTest (108, 3.402823E+38F, "G", "3.402823E+38");
193 FormatStringTest (109, 3.402823E+38F, "G0", "3.402823E+38");
194 FormatStringTest (110, 3.402823E+38F, "G1", "3E+38");
195 FormatStringTest (111, 3.402823E+38F, "G2", "3.4E+38");
196 FormatStringTest (112, 3.402823E+38F, "G3", "3.4E+38");
197 FormatStringTest (113, 3.402823E+38F, "G4", "3.403E+38");
198 FormatStringTest (114, 3.402823E+38F, "G5", "3.4028E+38");
199 FormatStringTest (115, 3.402823E+38F, "G6", "3.40282E+38");
200 FormatStringTest (116, 3.402823E+38F, "G7", "3.402823E+38");
201 FormatStringTest (117, 3.402823E+38F, "G8", "3.4028231E+38");
202 FormatStringTest (118, 3.402823E+38F, "G9", "3.40282306E+38");
203 FormatStringTest (119, 3.402823E+38F, "G67", "340282306000000000000000000000000000000");
204 FormatStringTest (120, 3.402823E+38F, "N", "340,282,300,000,000,000,000,000,000,000,000,000,000.00");
205 FormatStringTest (121, 3.402823E+38F, "N0", "340,282,300,000,000,000,000,000,000,000,000,000,000");
206 FormatStringTest (122, 3.402823E+38F, "N1", "340,282,300,000,000,000,000,000,000,000,000,000,000.0");
207 FormatStringTest (123, 3.402823E+38F, "N2", "340,282,300,000,000,000,000,000,000,000,000,000,000.00");
208 FormatStringTest (124, 3.402823E+38F, "N3", "340,282,300,000,000,000,000,000,000,000,000,000,000.000");
209 FormatStringTest (125, 3.402823E+38F, "N4", "340,282,300,000,000,000,000,000,000,000,000,000,000.0000");
210 FormatStringTest (126, 3.402823E+38F, "N5", "340,282,300,000,000,000,000,000,000,000,000,000,000.00000");
211 FormatStringTest (127, 3.402823E+38F, "N6", "340,282,300,000,000,000,000,000,000,000,000,000,000.000000");
212 FormatStringTest (128, 3.402823E+38F, "N7", "340,282,300,000,000,000,000,000,000,000,000,000,000.0000000");
213 FormatStringTest (129, 3.402823E+38F, "N8", "340,282,300,000,000,000,000,000,000,000,000,000,000.00000000");
214 FormatStringTest (130, 3.402823E+38F, "N9", "340,282,300,000,000,000,000,000,000,000,000,000,000.000000000");
215 FormatStringTest (131, 3.402823E+38F, "N67", "340,282,300,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000");
216 FormatStringTest (132, 3.402823E+38F, "P", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.00"));
217 FormatStringTest (133, 3.402823E+38F, "P0", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000"));
218 FormatStringTest (134, 3.402823E+38F, "P1", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.0"));
219 FormatStringTest (135, 3.402823E+38F, "P2", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.00"));
220 FormatStringTest (136, 3.402823E+38F, "P3", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.000"));
221 FormatStringTest (137, 3.402823E+38F, "P4", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.0000"));
222 FormatStringTest (138, 3.402823E+38F, "P5", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.00000"));
223 FormatStringTest (139, 3.402823E+38F, "P6", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.000000"));
224 FormatStringTest (140, 3.402823E+38F, "P7", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.0000000"));
225 FormatStringTest (141, 3.402823E+38F, "P8", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.00000000"));
226 FormatStringTest (142, 3.402823E+38F, "P9", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.000000000"));
227 FormatStringTest (143, 3.402823E+38F, "P67", GetPercent ("34,028,230,000,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000"));
228 FormatStringTest (144, -3.402823E+38F, "C", "($340,282,300,000,000,000,000,000,000,000,000,000,000.00)");
229 FormatStringTest (145, -3.402823E+38F, "C0", "($340,282,300,000,000,000,000,000,000,000,000,000,000)");
230 FormatStringTest (146, -3.402823E+38F, "C1", "($340,282,300,000,000,000,000,000,000,000,000,000,000.0)");
231 FormatStringTest (147, -3.402823E+38F, "C2", "($340,282,300,000,000,000,000,000,000,000,000,000,000.00)");
232 FormatStringTest (148, -3.402823E+38F, "C3", "($340,282,300,000,000,000,000,000,000,000,000,000,000.000)");
233 FormatStringTest (149, -3.402823E+38F, "C4", "($340,282,300,000,000,000,000,000,000,000,000,000,000.0000)");
234 FormatStringTest (150, -3.402823E+38F, "C5", "($340,282,300,000,000,000,000,000,000,000,000,000,000.00000)");
235 FormatStringTest (151, -3.402823E+38F, "C6", "($340,282,300,000,000,000,000,000,000,000,000,000,000.000000)");
236 FormatStringTest (152, -3.402823E+38F, "C7", "($340,282,300,000,000,000,000,000,000,000,000,000,000.0000000)");
237 FormatStringTest (153, -3.402823E+38F, "C8", "($340,282,300,000,000,000,000,000,000,000,000,000,000.00000000)");
238 FormatStringTest (154, -3.402823E+38F, "C9", "($340,282,300,000,000,000,000,000,000,000,000,000,000.000000000)");
239 FormatStringTest (155, -3.402823E+38F, "C67", "($340,282,300,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000)");
240 FormatStringTest (156, -3.402823E+38F, "E", "-3.402823E+038");
241 FormatStringTest (157, -3.402823E+38F, "E0", "-3E+038");
242 FormatStringTest (158, -3.402823E+38F, "E1", "-3.4E+038");
243 FormatStringTest (159, -3.402823E+38F, "E2", "-3.40E+038");
244 FormatStringTest (160, -3.402823E+38F, "E3", "-3.403E+038");
245 FormatStringTest (161, -3.402823E+38F, "E4", "-3.4028E+038");
246 FormatStringTest (162, -3.402823E+38F, "E5", "-3.40282E+038");
247 FormatStringTest (163, -3.402823E+38F, "E6", "-3.402823E+038");
248 FormatStringTest (164, -3.402823E+38F, "E7", "-3.4028231E+038");
249 FormatStringTest (165, -3.402823E+38F, "E8", "-3.40282306E+038");
250 FormatStringTest (166, -3.402823E+38F, "E9", "-3.402823060E+038");
251 FormatStringTest (167, -3.402823E+38F, "E67", "-3.4028230600000000000000000000000000000000000000000000000000000000000E+038");
252 FormatStringTest (168, -3.402823E+38F, "F", "-340282300000000000000000000000000000000.00");
253 FormatStringTest (169, -3.402823E+38F, "F0", "-340282300000000000000000000000000000000");
254 FormatStringTest (170, -3.402823E+38F, "F1", "-340282300000000000000000000000000000000.0");
255 FormatStringTest (171, -3.402823E+38F, "F2", "-340282300000000000000000000000000000000.00");
256 FormatStringTest (172, -3.402823E+38F, "F3", "-340282300000000000000000000000000000000.000");
257 FormatStringTest (173, -3.402823E+38F, "F4", "-340282300000000000000000000000000000000.0000");
258 FormatStringTest (174, -3.402823E+38F, "F5", "-340282300000000000000000000000000000000.00000");
259 FormatStringTest (175, -3.402823E+38F, "F6", "-340282300000000000000000000000000000000.000000");
260 FormatStringTest (176, -3.402823E+38F, "F7", "-340282300000000000000000000000000000000.0000000");
261 FormatStringTest (177, -3.402823E+38F, "F8", "-340282300000000000000000000000000000000.00000000");
262 FormatStringTest (178, -3.402823E+38F, "F9", "-340282300000000000000000000000000000000.000000000");
263 FormatStringTest (179, -3.402823E+38F, "F67", "-340282300000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000000000000");
264 FormatStringTest (180, -3.402823E+38F, "G", "-3.402823E+38");
265 FormatStringTest (181, -3.402823E+38F, "G0", "-3.402823E+38");
266 FormatStringTest (182, -3.402823E+38F, "G1", "-3E+38");
267 FormatStringTest (183, -3.402823E+38F, "G2", "-3.4E+38");
268 FormatStringTest (184, -3.402823E+38F, "G3", "-3.4E+38");
269 FormatStringTest (185, -3.402823E+38F, "G4", "-3.403E+38");
270 FormatStringTest (186, -3.402823E+38F, "G5", "-3.4028E+38");
271 FormatStringTest (187, -3.402823E+38F, "G6", "-3.40282E+38");
272 FormatStringTest (188, -3.402823E+38F, "G7", "-3.402823E+38");
273 FormatStringTest (189, -3.402823E+38F, "G8", "-3.4028231E+38");
274 FormatStringTest (190, -3.402823E+38F, "G9", "-3.40282306E+38");
275 FormatStringTest (191, -3.402823E+38F, "G67", "-340282306000000000000000000000000000000");
276 FormatStringTest (192, -3.402823E+38F, "N", "-340,282,300,000,000,000,000,000,000,000,000,000,000.00");
277 FormatStringTest (193, -3.402823E+38F, "N0", "-340,282,300,000,000,000,000,000,000,000,000,000,000");
278 FormatStringTest (194, -3.402823E+38F, "N1", "-340,282,300,000,000,000,000,000,000,000,000,000,000.0");
279 FormatStringTest (195, -3.402823E+38F, "N2", "-340,282,300,000,000,000,000,000,000,000,000,000,000.00");
280 FormatStringTest (196, -3.402823E+38F, "N3", "-340,282,300,000,000,000,000,000,000,000,000,000,000.000");
281 FormatStringTest (197, -3.402823E+38F, "N4", "-340,282,300,000,000,000,000,000,000,000,000,000,000.0000");
282 FormatStringTest (198, -3.402823E+38F, "N5", "-340,282,300,000,000,000,000,000,000,000,000,000,000.00000");
283 FormatStringTest (199, -3.402823E+38F, "N6", "-340,282,300,000,000,000,000,000,000,000,000,000,000.000000");
284 FormatStringTest (200, -3.402823E+38F, "N7", "-340,282,300,000,000,000,000,000,000,000,000,000,000.0000000");
285 FormatStringTest (201, -3.402823E+38F, "N8", "-340,282,300,000,000,000,000,000,000,000,000,000,000.00000000");
286 FormatStringTest (202, -3.402823E+38F, "N9", "-340,282,300,000,000,000,000,000,000,000,000,000,000.000000000");
287 FormatStringTest (203, -3.402823E+38F, "N67", "-340,282,300,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000");
288 FormatStringTest (204, -3.402823E+38F, "P", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.00"));
289 FormatStringTest (205, -3.402823E+38F, "P0", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000"));
290 FormatStringTest (206, -3.402823E+38F, "P1", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.0"));
291 FormatStringTest (207, -3.402823E+38F, "P2", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.00"));
292 FormatStringTest (208, -3.402823E+38F, "P3", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.000"));
293 FormatStringTest (209, -3.402823E+38F, "P4", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.0000"));
294 FormatStringTest (210, -3.402823E+38F, "P5", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.00000"));
295 FormatStringTest (211, -3.402823E+38F, "P6", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.000000"));
296 FormatStringTest (212, -3.402823E+38F, "P7", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.0000000"));
297 FormatStringTest (213, -3.402823E+38F, "P8", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.00000000"));
298 FormatStringTest (214, -3.402823E+38F, "P9", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.000000000"));
299 FormatStringTest (215, -3.402823E+38F, "P67", GetPercent ("-34,028,230,000,000,000,000,000,000,000,000,000,000,000.0000000000000000000000000000000000000000000000000000000000000000000"));
300 FormatStringTest (216, 1E-10F, "C", "$0.00");
301 FormatStringTest (217, 1E-10F, "C0", "$0");
302 FormatStringTest (218, 1E-10F, "C1", "$0.0");
303 FormatStringTest (219, 1E-10F, "C2", "$0.00");
304 FormatStringTest (220, 1E-10F, "C3", "$0.000");
305 FormatStringTest (221, 1E-10F, "C4", "$0.0000");
306 FormatStringTest (222, 1E-10F, "C5", "$0.00000");
307 FormatStringTest (223, 1E-10F, "C6", "$0.000000");
308 FormatStringTest (224, 1E-10F, "C7", "$0.0000000");
309 FormatStringTest (225, 1E-10F, "C8", "$0.00000000");
310 FormatStringTest (226, 1E-10F, "C9", "$0.000000000");
311 FormatStringTest (227, 1E-10F, "C67", "$0.0000000001000000000000000000000000000000000000000000000000000000000");
312 FormatStringTest (228, 1E-10F, "E", "1.000000E-010");
313 FormatStringTest (229, 1E-10F, "E0", "1E-010");
314 FormatStringTest (230, 1E-10F, "E1", "1.0E-010");
315 FormatStringTest (231, 1E-10F, "E2", "1.00E-010");
316 FormatStringTest (232, 1E-10F, "E3", "1.000E-010");
317 FormatStringTest (233, 1E-10F, "E4", "1.0000E-010");
318 FormatStringTest (234, 1E-10F, "E5", "1.00000E-010");
319 FormatStringTest (235, 1E-10F, "E6", "1.000000E-010");
320 FormatStringTest (236, 1E-10F, "E7", "1.0000000E-010");
321 FormatStringTest (237, 1E-10F, "E8", "1.00000001E-010");
322 FormatStringTest (238, 1E-10F, "E9", "1.000000010E-010");
323 FormatStringTest (239, 1E-10F, "E67", "1.0000000100000000000000000000000000000000000000000000000000000000000E-010");
324 FormatStringTest (240, 1E-10F, "F", "0.00");
325 FormatStringTest (241, 1E-10F, "F0", "0");
326 FormatStringTest (242, 1E-10F, "F1", "0.0");
327 FormatStringTest (243, 1E-10F, "F2", "0.00");
328 FormatStringTest (244, 1E-10F, "F3", "0.000");
329 FormatStringTest (245, 1E-10F, "F4", "0.0000");
330 FormatStringTest (246, 1E-10F, "F5", "0.00000");
331 FormatStringTest (247, 1E-10F, "F6", "0.000000");
332 FormatStringTest (248, 1E-10F, "F7", "0.0000000");
333 FormatStringTest (249, 1E-10F, "F8", "0.00000000");
334 FormatStringTest (250, 1E-10F, "F9", "0.000000000");
335 FormatStringTest (251, 1E-10F, "F67", "0.0000000001000000000000000000000000000000000000000000000000000000000");
336 FormatStringTest (252, 1E-10F, "G", "1E-10");
337 FormatStringTest (253, 1E-10F, "G0", "1E-10");
338 FormatStringTest (254, 1E-10F, "G1", "1E-10");
339 FormatStringTest (255, 1E-10F, "G2", "1E-10");
340 FormatStringTest (256, 1E-10F, "G3", "1E-10");
341 FormatStringTest (257, 1E-10F, "G4", "1E-10");
342 FormatStringTest (258, 1E-10F, "G5", "1E-10");
343 FormatStringTest (259, 1E-10F, "G6", "1E-10");
344 FormatStringTest (260, 1E-10F, "G7", "1E-10");
345 FormatStringTest (261, 1E-10F, "G8", "1E-10");
346 FormatStringTest (262, 1E-10F, "G9", "1.00000001E-10");
347 FormatStringTest (263, 1E-10F, "G67", "1.00000001E-10");
348 FormatStringTest (264, 1E-10F, "N", "0.00");
349 FormatStringTest (265, 1E-10F, "N0", "0");
350 FormatStringTest (266, 1E-10F, "N1", "0.0");
351 FormatStringTest (267, 1E-10F, "N2", "0.00");
352 FormatStringTest (268, 1E-10F, "N3", "0.000");
353 FormatStringTest (269, 1E-10F, "N4", "0.0000");
354 FormatStringTest (270, 1E-10F, "N5", "0.00000");
355 FormatStringTest (271, 1E-10F, "N6", "0.000000");
356 FormatStringTest (272, 1E-10F, "N7", "0.0000000");
357 FormatStringTest (273, 1E-10F, "N8", "0.00000000");
358 FormatStringTest (274, 1E-10F, "N9", "0.000000000");
359 FormatStringTest (275, 1E-10F, "N67", "0.0000000001000000000000000000000000000000000000000000000000000000000");
360 FormatStringTest (276, 1E-10F, "P", GetPercent ("0.00"));
361 FormatStringTest (277, 1E-10F, "P0", GetPercent ("0"));
362 FormatStringTest (278, 1E-10F, "P1", GetPercent ("0.0"));
363 FormatStringTest (279, 1E-10F, "P2", GetPercent ("0.00"));
364 FormatStringTest (280, 1E-10F, "P3", GetPercent ("0.000"));
365 FormatStringTest (281, 1E-10F, "P4", GetPercent ("0.0000"));
366 FormatStringTest (282, 1E-10F, "P5", GetPercent ("0.00000"));
367 FormatStringTest (283, 1E-10F, "P6", GetPercent ("0.000000"));
368 FormatStringTest (284, 1E-10F, "P7", GetPercent ("0.0000000"));
369 FormatStringTest (285, 1E-10F, "P8", GetPercent ("0.00000001"));
370 FormatStringTest (286, 1E-10F, "P9", GetPercent ("0.000000010"));
371 FormatStringTest (287, 1E-10F, "P67", GetPercent ("0.0000000100000000000000000000000000000000000000000000000000000000000"));