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