2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / corlib / Test / System / SingleTest.cs
1 // 
2 // System.SingleTest.cs - Unit test for Single
3 //      adapted from a subset of DoubleTest.cs
4 //
5 // Authors
6 //      Bob Doan  <bdoan@sicompos.com>
7 //      Sebastien Pouliot  <sebastien@ximian.com>
8 //
9 // Copyright (C) 2004 Novell (http://www.novell.com)
10 //
11
12 using System;
13 using NUnit.Framework;
14
15 namespace MonoTests.System  {
16
17         [TestFixture]
18         public class SingleTest : Assertion {
19
20                 [Test]
21                 public void Equals () 
22                 {
23                         Single s1 = 1f;
24                         Single s2 = 1f;
25                         Assert ("Equals s1==s2", s1.Equals (s2));
26                         Assert ("Equals s1!=NaN", !s1.Equals (Single.NaN));
27
28                         Assert ("Equals NaN=!s2", !Single.NaN.Equals (s2));
29                         Assert ("Equals NaN==NaN", Single.NaN.Equals (Single.NaN));
30
31                         Single p0 = 0.0f;
32                         Single m0 = -0.0f;
33                         Assert ("0.0==-0.0", p0.Equals (m0));
34                         Assert ("-0.0==0.0", m0.Equals (p0));
35                 }
36
37                 [Test]
38                 public void IsInfinity ()
39                 {
40                         Assert ("PositiveInfinity",  Single.IsInfinity (Single.PositiveInfinity));
41                         Assert ("NegativeInfinity", Single.IsInfinity (Single.NegativeInfinity));
42                         Assert ("12", !Single.IsInfinity(12));          
43                         Assert ("NaN", !Single.IsInfinity (Single.NaN));                
44                 }
45
46                 [Test]
47                 public void IsNan ()
48                 {
49                         Assert ("Nan", Single.IsNaN (Single.NaN));
50                         Assert ("12", !Single.IsNaN (12));
51                         Assert ("PositiveInfinity", !Single.IsNaN (Single.PositiveInfinity));
52                         Assert ("NegativeInfinity", !Single.IsNaN (Single.PositiveInfinity));
53                 }
54
55                 [Test]
56                 public void IsNegativeInfinity ()
57                 {
58                         Assert ("IsNegativeInfinity", Single.IsNegativeInfinity (Single.NegativeInfinity));
59                         Assert ("12", !Single.IsNegativeInfinity (12));         
60                         Assert ("NaN", !Single.IsNegativeInfinity (Single.NaN));                
61                 }
62
63                 [Test]
64                 public void IsPositiveInfinity ()
65                 {
66                         Assert ("PositiveInfinity", Single.IsPositiveInfinity (Single.PositiveInfinity));
67                         Assert ("12", !Single.IsPositiveInfinity (12));         
68                         Assert ("NaN", !Single.IsPositiveInfinity (Single.NaN));                
69                 }
70
71                 [Test]
72                 public void ToString_Defaults () 
73                 {
74                         Single i = 254.9f;
75                         // everything defaults to "G"
76                         string def = i.ToString ("G");
77                         AssertEquals ("ToString()", def, i.ToString ());
78                         AssertEquals ("ToString((IFormatProvider)null)", def, i.ToString ((IFormatProvider)null));
79                         AssertEquals ("ToString((string)null)", def, i.ToString ((string)null));
80                         AssertEquals ("ToString(empty)", def, i.ToString (String.Empty));
81                         AssertEquals ("ToString(null,null)", def, i.ToString (null, null));
82                         AssertEquals ("ToString(empty,null)", def, i.ToString (String.Empty, null));
83
84                         AssertEquals ("ToString(G)", "254.9", def);
85                 }
86         }
87 }