@@ -160,6 +160,135 @@ public void Equals()
160160
161161 }
162162
163+ [ TestMethod ]
164+ public void ToString_NoFormatString ( )
165+ {
166+ // Test basic ToString() without format string (uses "G" format by default)
167+ float value = 0 ;
168+ Assert . AreEqual ( "0" , value . ToString ( ) , "0.ToString() failed" ) ;
169+
170+ value = 123 ;
171+ Assert . AreEqual ( "123" , value . ToString ( ) , "123.ToString() failed" ) ;
172+
173+ value = - 123 ;
174+ Assert . AreEqual ( "-123" , value . ToString ( ) , "-123.ToString() failed" ) ;
175+
176+ value = 123.456f ;
177+ Assert . AreEqual ( "123.456" , value . ToString ( ) , "123.456f.ToString() failed" ) ;
178+
179+ value = - 123.456f ;
180+ Assert . AreEqual ( "-123.456" , value . ToString ( ) , "-123.456f.ToString() failed" ) ;
181+
182+ value = 0.1f ;
183+ Assert . AreEqual ( "0.1" , value . ToString ( ) , "0.1f.ToString() failed" ) ;
184+
185+ value = - 0.1f ;
186+ Assert . AreEqual ( "-0.1" , value . ToString ( ) , "-0.1f.ToString() failed" ) ;
187+
188+ value = 1234567.89f ;
189+ Assert . AreEqual ( "1234567.89" , value . ToString ( ) , "1234567.89f.ToString() failed" ) ;
190+
191+ value = - 1234567.89f ;
192+ Assert . AreEqual ( "-1234567.89" , value . ToString ( ) , "-1234567.89f.ToString() failed" ) ;
193+ }
194+
195+ [ TestMethod ]
196+ public void ToString_SpecialValues ( )
197+ {
198+ // Test special values
199+ Assert . AreEqual ( "NaN" , float . NaN . ToString ( ) , "NaN.ToString() failed" ) ;
200+ Assert . AreEqual ( "Infinity" , float . PositiveInfinity . ToString ( ) , "PositiveInfinity.ToString() failed" ) ;
201+ Assert . AreEqual ( "-Infinity" , float . NegativeInfinity . ToString ( ) , "NegativeInfinity.ToString() failed" ) ;
202+ }
203+
204+ [ TestMethod ]
205+ public void ToString_ZeroValues ( )
206+ {
207+ // Test zero and negative zero
208+ float zero = 0.0f ;
209+ Assert . AreEqual ( "0" , zero . ToString ( ) , "0.0f.ToString() failed" ) ;
210+
211+ float negativeZero = - 0.0f ;
212+ Assert . AreEqual ( "0" , negativeZero . ToString ( ) , "-0.0f.ToString() failed" ) ;
213+ }
214+
215+ [ TestMethod ]
216+ public void ToString_SmallValues ( )
217+ {
218+ // Test very small values
219+ float value = 0.0001f ;
220+ Assert . AreEqual ( "0.0001" , value . ToString ( ) , "0.0001f.ToString() failed" ) ;
221+
222+ value = - 0.0001f ;
223+ Assert . AreEqual ( "-0.0001" , value . ToString ( ) , "-0.0001f.ToString() failed" ) ;
224+
225+ value = 1e-10f ;
226+ Assert . AreEqual ( "1E-10" , value . ToString ( ) , "1e-10f.ToString() failed" ) ;
227+
228+ value = - 1e-10f ;
229+ Assert . AreEqual ( "-1E-10" , value . ToString ( ) , "-1e-10f.ToString() failed" ) ;
230+ }
231+
232+ [ TestMethod ]
233+ public void ToString_LargeValues ( )
234+ {
235+ // Test large values
236+ float value = 1e10f ;
237+ Assert . AreEqual ( "10000000000" , value . ToString ( ) , "1e10f.ToString() failed" ) ;
238+
239+ value = - 1e10f ;
240+ Assert . AreEqual ( "-10000000000" , value . ToString ( ) , "-1e10f.ToString() failed" ) ;
241+
242+ value = 1.23456789e15f ;
243+ string result = value . ToString ( ) ;
244+ Assert . IsTrue ( result . Length > 0 , "ToString() should return a non-empty string" ) ;
245+ }
246+
247+ [ TestMethod ]
248+ public void ToString_ScientificNotation ( )
249+ {
250+ // Test values that should use scientific notation in default format
251+ float value = 1.23e20f ;
252+ string result = value . ToString ( ) ;
253+ Assert . IsTrue ( result . Contains ( "E" ) || result . Contains ( "e" ) , "1.23e20f.ToString() should use scientific notation" ) ;
254+
255+ value = - 1.23e20f ;
256+ result = value . ToString ( ) ;
257+ Assert . IsTrue ( result . Contains ( "E" ) || result . Contains ( "e" ) , "-1.23e20f.ToString() should use scientific notation" ) ;
258+
259+ value = 1.23e-20f ;
260+ result = value . ToString ( ) ;
261+ Assert . IsTrue ( result . Contains ( "E" ) || result . Contains ( "e" ) , "1.23e-20f.ToString() should use scientific notation" ) ;
262+ }
263+
264+ [ TestMethod ]
265+ public void ToString_RoundingBehavior ( )
266+ {
267+ // Test rounding behavior
268+ float value = 1.23456789f ;
269+ string result = value . ToString ( ) ;
270+ Assert . IsTrue ( result . Length > 0 , "ToString() should return a non-empty string" ) ;
271+ Assert . IsTrue ( result . Contains ( "." ) , "Decimal value ToString() should contain a decimal point" ) ;
272+
273+ value = 0.123456789f ;
274+ result = value . ToString ( ) ;
275+ Assert . IsTrue ( result . StartsWith ( "0." ) , "Fractional value should start with '0.'" ) ;
276+ }
277+
278+ [ TestMethod ]
279+ public void ToString_WithFormatString ( )
280+ {
281+ // Test ToString() with format string
282+ float value = 123.456f ;
283+ Assert . AreEqual ( "123.46" , value . ToString ( "F2" ) , "ToString('F2') failed" ) ;
284+
285+ value = 1234.5f ;
286+ Assert . AreEqual ( "1,234.50" , value . ToString ( "N2" ) , "ToString('N2') failed" ) ;
287+
288+ value = 1.23456e10f ;
289+ Assert . AreEqual ( "1.234560E+010" , value . ToString ( "E6" ) , "ToString('E6') failed" ) ;
290+ }
291+
163292 private sealed class SingleTestData
164293 {
165294 public object F1 { get ; }
0 commit comments