In .:
[mono.git] / mcs / class / corlib / Test / System / Int32Test.cs
index c76154711a4cfff36a6424bb99297af313cc3df2..b42878f90ac5ac50e6209d0ede3be9eae419e298 100644 (file)
@@ -79,10 +79,10 @@ public class Int32Test : Assertion
        {
                Assert("MyInt32_3.CompareTo(MyInt32_2) > 0", MyInt32_3.CompareTo(MyInt32_2) > 0);
                Assert("MyInt32_2.CompareTo(MyInt32_2) == 0", MyInt32_2.CompareTo(MyInt32_2) == 0);
-               Assert("MyInt32_1.CompareTo((Int32)(-42)) == 0", MyInt32_1.CompareTo((Int32)(-42)) == 0);
+               Assert("MyInt32_1.CompareTo((Int32)(-42)) == 0", MyInt32_1.CompareTo((object)(Int32)(-42)) == 0);
                Assert("MyInt32_2.CompareTo(MyInt32_3) < 0", MyInt32_2.CompareTo(MyInt32_3) < 0);
                try {
-                       MyInt32_2.CompareTo((Int16)100);
+                       MyInt32_2.CompareTo((object)(Int16)100);
                        Fail("Should raise a System.ArgumentException");
                }
                catch (Exception e) {
@@ -94,7 +94,7 @@ public class Int32Test : Assertion
        {
                Assert ("#B01", MyInt32_1.Equals (MyInt32_1));
                Assert ("#B02", MyInt32_1.Equals ((Int32)(-42)));
-               Assert ("#B03", MyInt32_1.Equals ((SByte)(-42)) == false);
+               Assert ("#B03", MyInt32_1.Equals ((object)(SByte)(-42)) == false);
                Assert ("#B04", MyInt32_1.Equals (MyInt32_2) == false);
        }
        
@@ -197,7 +197,68 @@ public class Int32Test : Assertion
                } catch (Exception e){
                        Assert ("#C34", typeof (OverflowException) == e.GetType ());
                }
+               try {
+                       Int32.Parse ("2147483648");
+                       Fail ("C#35: should raise OverflowException");
+               } catch (Exception e) {
+                       Assert ("C#36", typeof (OverflowException) == e.GetType ());
+               }
+               try {
+                       Int32.Parse ("2147483648", CultureInfo.InvariantCulture);
+                       Fail ("C#37: should raise OverflowException");
+               } catch (Exception e) {
+                       Assert ("C#38", typeof (OverflowException) == e.GetType ());
+               }
+       }
+
+#if NET_2_0    
+       public void TestTryParse()
+       {
+               int result;
+
+               AssertEquals (true, Int32.TryParse (MyString1, out result));
+               AssertEquals (MyInt32_1, result);
+               AssertEquals (true, Int32.TryParse (MyString2, out result));
+               AssertEquals (MyInt32_2, result);
+               AssertEquals (true, Int32.TryParse (MyString3, out result));
+               AssertEquals (MyInt32_3, result);
+
+               AssertEquals (true, Int32.TryParse ("1", out result));
+               AssertEquals (1, result);
+               AssertEquals (true, Int32.TryParse (" 1", out result));
+               AssertEquals (1, result);
+               AssertEquals (true, Int32.TryParse ("     1", out result));
+               AssertEquals (1, result);
+               AssertEquals (true, Int32.TryParse ("1    ", out result));
+               AssertEquals (1, result);
+               AssertEquals (true, Int32.TryParse ("+1", out result));
+               AssertEquals (1, result);
+               AssertEquals (true, Int32.TryParse ("-1", out result));
+               AssertEquals (-1, result);
+               AssertEquals (true, Int32.TryParse ("  -1", out result));
+               AssertEquals (-1, result);
+               AssertEquals (true, Int32.TryParse ("  -1  ", out result));
+               AssertEquals (-1, result);
+               AssertEquals (true, Int32.TryParse ("  -1  ", out result));
+               AssertEquals (-1, result);
+
+               result = 1;
+               AssertEquals (false, Int32.TryParse (null, out result));
+               AssertEquals (0, result);
+
+               AssertEquals (false, Int32.TryParse ("not-a-number", out result));
+
+               double OverInt = (double)Int32.MaxValue + 1;
+               AssertEquals (false, Int32.TryParse (OverInt.ToString (), out result));
+
+               AssertEquals (false, Int32.TryParse ("$42", NumberStyles.Integer, null, out result));
+               AssertEquals (false, Int32.TryParse ("%42", NumberStyles.Integer, Nfi, out result));
+               AssertEquals (false, Int32.TryParse ("$42", NumberStyles.Integer, Nfi, out result));
+               AssertEquals (false, Int32.TryParse (" - 1 ", out result));
+               AssertEquals (false, Int32.TryParse (" - ", out result));
+               AssertEquals (false, Int32.TryParse ("100000000", NumberStyles.HexNumber, Nfi, out result));
        }
+#endif
        
        public void TestToString()
        {
@@ -242,6 +303,18 @@ public class Int32Test : Assertion
                AssertEquals ("Custom format string ####", "000123", i.ToString ("0#0###"));
        }
 
+       [Test]
+       public void TestSections ()
+       {
+               int hundred = 100;
+               int neghund = -100;
+               
+               Assert ("#TS1",  hundred.ToString ("#;#") == "100");
+               Assert ("#TS2",  hundred.ToString ("-#;#") == "-100");
+               Assert ("#TS3",  neghund.ToString ("#;#") == "100");
+               Assert ("#TS3",  neghund.ToString ("#;-#") == "-100");
+       }
+       
        [Test]
        public void ToString_Defaults () 
        {