char hexDigit;
// Number stuff
- do {
+ while (pos < s.Length) {
if (!ValidDigit (s [pos], AllowHexSpecifier)) {
if (AllowThousands &&
exc = new OverflowException ("Value too large or too small.");
return false;
}
- } while (pos < s.Length);
+ }
// Post number stuff
if (nDigits == 0) {
char hexDigit;
// Number stuff
- do {
+ while (pos < s.Length) {
if (!Int32.ValidDigit (s [pos], AllowHexSpecifier)) {
if (AllowThousands &&
exc = new OverflowException ("Value too large or too small.");
return false;
}
- } while (pos < s.Length);
+ }
// Post number stuff
if (nDigits == 0) {
// Number stuff
// Just the same as Int32, but this one adds instead of substract
- do {
+ while (pos < s.Length) {
if (!Int32.ValidDigit (s [pos], AllowHexSpecifier)) {
if (AllowThousands &&
exc = new OverflowException (Locale.GetText ("Value too large or too small."));
return false;
}
- } while (pos < s.Length);
+ }
// Post number stuff
if (nDigits == 0) {
// Number stuff
// Just the same as Int32, but this one adds instead of substract
- do {
+ while (pos < s.Length) {
if (!Int32.ValidDigit (s [pos], AllowHexSpecifier)) {
if (AllowThousands &&
exc = new OverflowException (Locale.GetText ("Value too large or too small."));
return false;
}
- } while (pos < s.Length);
+ }
// Post number stuff
if (nDigits == 0) {
Assert.AreEqual (true, Int32.TryParse ("ffffffff", NumberStyles.HexNumber, Nfi, out result));
Assert.AreEqual (-1, result);
Assert.AreEqual (false, Int32.TryParse ("100000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.IsFalse (int.TryParse ("-", NumberStyles.AllowLeadingSign, Nfi, out result));
+ Assert.IsFalse (int.TryParse (Nfi.CurrencySymbol + "-", NumberStyles.AllowLeadingSign | NumberStyles.AllowCurrencySymbol, Nfi, out result));
}
[Test]
}
}
+ [Test]
+ public void TestTryParse()
+ {
+ long result;
+
+ Assert.AreEqual (true, long.TryParse (MyString1, out result));
+ Assert.AreEqual (MyInt64_1, result);
+ Assert.AreEqual (true, long.TryParse (MyString2, out result));
+ Assert.AreEqual (MyInt64_2, result);
+ Assert.AreEqual (true, long.TryParse (MyString3, out result));
+ Assert.AreEqual (MyInt64_3, result);
+
+ Assert.AreEqual (true, long.TryParse ("1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, long.TryParse (" 1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, long.TryParse (" 1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, long.TryParse ("1 ", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, long.TryParse ("+1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, long.TryParse ("-1", out result));
+ Assert.AreEqual (-1, result);
+ Assert.AreEqual (true, long.TryParse (" -1", out result));
+ Assert.AreEqual (-1, result);
+ Assert.AreEqual (true, long.TryParse (" -1 ", out result));
+ Assert.AreEqual (-1, result);
+ Assert.AreEqual (true, long.TryParse (" -1 ", out result));
+ Assert.AreEqual (-1, result);
+
+ result = 1;
+ Assert.AreEqual (false, long.TryParse (null, out result));
+ Assert.AreEqual (0, result);
+
+ Assert.AreEqual (false, long.TryParse ("not-a-number", out result));
+
+ double OverInt = (double)long.MaxValue + 1;
+ Assert.AreEqual (false, long.TryParse (OverInt.ToString (), out result));
+ Assert.AreEqual (false, long.TryParse (OverInt.ToString (), NumberStyles.None, CultureInfo.InvariantCulture, out result));
+
+ Assert.AreEqual (false, long.TryParse ("$42", NumberStyles.Integer, null, out result));
+ Assert.AreEqual (false, long.TryParse ("%42", NumberStyles.Integer, Nfi, out result));
+ Assert.AreEqual (false, long.TryParse ("$42", NumberStyles.Integer, Nfi, out result));
+ Assert.AreEqual (false, long.TryParse (" - 1 ", out result));
+ Assert.AreEqual (false, long.TryParse (" - ", out result));
+ Assert.AreEqual (true, long.TryParse ("100000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (true, long.TryParse ("10000000000", out result));
+ Assert.AreEqual (true, long.TryParse ("-10000000000", out result));
+ Assert.AreEqual (true, long.TryParse ("7fffffff", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (int.MaxValue, result);
+ Assert.AreEqual (true, long.TryParse ("80000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (2147483648, result);
+ Assert.AreEqual (true, long.TryParse ("ffffffff", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (uint.MaxValue, result);
+ Assert.AreEqual (true, long.TryParse ("100000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.IsFalse (long.TryParse ("-", NumberStyles.AllowLeadingSign, Nfi, out result));
+ Assert.IsFalse (long.TryParse (Nfi.CurrencySymbol + "-", NumberStyles.AllowLeadingSign | NumberStyles.AllowCurrencySymbol, Nfi, out result));
+ }
+
[Test]
public void TestToString()
{
}
}
+ [Test]
+ public void TestTryParse()
+ {
+ uint result;
+
+ Assert.AreEqual (true, UInt32.TryParse (MyString1, out result));
+ Assert.AreEqual (MyUInt32_1, result);
+ Assert.AreEqual (true, UInt32.TryParse (MyString2, out result));
+ Assert.AreEqual (MyUInt32_2, result);
+ Assert.AreEqual (true, UInt32.TryParse (MyString3, out result));
+ Assert.AreEqual (MyUInt32_3, result);
+
+ Assert.AreEqual (true, UInt32.TryParse ("1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, UInt32.TryParse (" 1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, UInt32.TryParse (" 1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, UInt32.TryParse ("1 ", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, UInt32.TryParse ("+1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (false, UInt32.TryParse ("-1", out result));
+ Assert.AreEqual (false, UInt32.TryParse (" -1", out result));
+ Assert.AreEqual (false, UInt32.TryParse (" -1 ", out result));
+ Assert.AreEqual (false, UInt32.TryParse (" -1 ", out result));
+
+ result = 1;
+ Assert.AreEqual (false, UInt32.TryParse (null, out result));
+ Assert.AreEqual (0, result);
+
+ Assert.AreEqual (false, UInt32.TryParse ("not-a-number", out result));
+
+ double OverInt = (double)UInt32.MaxValue + 1;
+ Assert.AreEqual (false, UInt32.TryParse (OverInt.ToString (), out result));
+ Assert.AreEqual (false, UInt32.TryParse (OverInt.ToString (), NumberStyles.None, CultureInfo.InvariantCulture, out result));
+
+ Assert.AreEqual (false, UInt32.TryParse ("$42", NumberStyles.Integer, null, out result));
+ Assert.AreEqual (false, UInt32.TryParse ("%42", NumberStyles.Integer, Nfi, out result));
+ Assert.AreEqual (false, UInt32.TryParse ("$42", NumberStyles.Integer, Nfi, out result));
+ Assert.AreEqual (false, UInt32.TryParse (" - 1 ", out result));
+ Assert.AreEqual (false, UInt32.TryParse (" - ", out result));
+ Assert.AreEqual (true, UInt32.TryParse ("100000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (false, UInt32.TryParse ("10000000000", out result));
+ Assert.AreEqual (false, UInt32.TryParse ("-10000000000", out result));
+ Assert.AreEqual (true, UInt32.TryParse ("7fffffff", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (Int32.MaxValue, result);
+ Assert.AreEqual (true, UInt32.TryParse ("80000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (Int32.MaxValue + (uint)1, result);
+ Assert.AreEqual (true, UInt32.TryParse ("ffffffff", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (uint.MaxValue, result);
+ Assert.AreEqual (true, UInt32.TryParse ("100000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.IsFalse (uint.TryParse ("-", NumberStyles.AllowLeadingSign, Nfi, out result));
+ Assert.IsFalse (uint.TryParse (Nfi.CurrencySymbol + "-", NumberStyles.AllowLeadingSign | NumberStyles.AllowCurrencySymbol, Nfi, out result));
+ }
+
[Test]
public void TestToString()
{
}
}
+ [Test]
+ public void TestTryParse()
+ {
+ ulong result;
+
+ Assert.AreEqual (true, ulong.TryParse (MyString1, out result));
+ Assert.AreEqual (MyUInt64_1, result);
+ Assert.AreEqual (true, ulong.TryParse (MyString2, out result));
+ Assert.AreEqual (MyUInt64_2, result);
+ Assert.AreEqual (true, ulong.TryParse (MyString3, out result));
+ Assert.AreEqual (MyUInt64_3, result);
+
+ Assert.AreEqual (true, ulong.TryParse ("1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, ulong.TryParse (" 1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, ulong.TryParse (" 1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, ulong.TryParse ("1 ", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (true, ulong.TryParse ("+1", out result));
+ Assert.AreEqual (1, result);
+ Assert.AreEqual (false, ulong.TryParse ("-1", out result));
+ Assert.AreEqual (false, ulong.TryParse (" -1", out result));
+ Assert.AreEqual (false, ulong.TryParse (" -1 ", out result));
+ Assert.AreEqual (false, ulong.TryParse (" -1 ", out result));
+
+ result = 1;
+ Assert.AreEqual (false, ulong.TryParse (null, out result));
+ Assert.AreEqual (0, result);
+
+ Assert.AreEqual (false, ulong.TryParse ("not-a-number", out result));
+
+ double OverInt = (double)ulong.MaxValue + 1;
+ Assert.AreEqual (false, ulong.TryParse (OverInt.ToString (), out result));
+ Assert.AreEqual (false, ulong.TryParse (OverInt.ToString (), NumberStyles.None, CultureInfo.InvariantCulture, out result));
+
+ Assert.AreEqual (false, ulong.TryParse ("$42", NumberStyles.Integer, null, out result));
+ Assert.AreEqual (false, ulong.TryParse ("%42", NumberStyles.Integer, Nfi, out result));
+ Assert.AreEqual (false, ulong.TryParse ("$42", NumberStyles.Integer, Nfi, out result));
+ Assert.AreEqual (false, ulong.TryParse (" - 1 ", out result));
+ Assert.AreEqual (false, ulong.TryParse (" - ", out result));
+ Assert.AreEqual (true, ulong.TryParse ("100000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (true, ulong.TryParse ("10000000000", out result));
+ Assert.AreEqual (false, ulong.TryParse ("-10000000000", out result));
+ Assert.AreEqual (true, ulong.TryParse ("7fffffff", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (int.MaxValue, result);
+ Assert.AreEqual (true, ulong.TryParse ("80000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (2147483648, result);
+ Assert.AreEqual (true, ulong.TryParse ("ffffffff", NumberStyles.HexNumber, Nfi, out result));
+ Assert.AreEqual (uint.MaxValue, result);
+ Assert.AreEqual (true, ulong.TryParse ("100000000", NumberStyles.HexNumber, Nfi, out result));
+ Assert.IsFalse (ulong.TryParse ("-", NumberStyles.AllowLeadingSign, Nfi, out result));
+ Assert.IsFalse (ulong.TryParse (Nfi.CurrencySymbol + "-", NumberStyles.AllowLeadingSign | NumberStyles.AllowCurrencySymbol, Nfi, out result));
+ }
+
[Test]
public void TestToString()
{