summaryrefslogtreecommitdiff
path: root/tests/src/CoreMangLib/cti/system/int64/int64parse2.cs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/CoreMangLib/cti/system/int64/int64parse2.cs')
-rw-r--r--tests/src/CoreMangLib/cti/system/int64/int64parse2.cs326
1 files changed, 326 insertions, 0 deletions
diff --git a/tests/src/CoreMangLib/cti/system/int64/int64parse2.cs b/tests/src/CoreMangLib/cti/system/int64/int64parse2.cs
new file mode 100644
index 0000000000..c20c71c129
--- /dev/null
+++ b/tests/src/CoreMangLib/cti/system/int64/int64parse2.cs
@@ -0,0 +1,326 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Globalization;
+/// <summary>
+/// Int64.Parse(string,NumberStyles)
+/// </summary>
+public class Int64Parse2
+{
+ private long c_INT64_MinValue = -9223372036854775808;
+ private long c_INT64_MaxValue = 9223372036854775807;
+ public static int Main()
+ {
+ Int64Parse2 int64parse2 = new Int64Parse2();
+ TestLibrary.TestFramework.BeginTestCase("Int64Parse2");
+ if (int64parse2.RunTests())
+ {
+ TestLibrary.TestFramework.EndTestCase();
+ TestLibrary.TestFramework.LogInformation("PASS");
+ return 100;
+ }
+ else
+ {
+ TestLibrary.TestFramework.EndTestCase();
+ TestLibrary.TestFramework.LogInformation("FAIL");
+ return 0;
+ }
+ }
+ public bool RunTests()
+ {
+ bool retVal = true;
+ TestLibrary.TestFramework.LogInformation("[PosTest]");
+ retVal = PosTest1() && retVal;
+ retVal = PosTest2() && retVal;
+ retVal = PosTest3() && retVal;
+ retVal = PosTest4() && retVal;
+ retVal = PosTest5() && retVal;
+ retVal = PosTest6() && retVal;
+ retVal = PosTest7() && retVal;
+ TestLibrary.TestFramework.LogInformation("[NegTest]");
+ retVal = NegTest1() && retVal;
+ retVal = NegTest2() && retVal;
+ retVal = NegTest3() && retVal;
+ retVal = NegTest4() && retVal;
+ retVal = NegTest5() && retVal;
+ return retVal;
+ }
+ #region PositiveTest
+ public bool PosTest1()
+ {
+ bool retVal = true;
+ TestLibrary.TestFramework.BeginScenario("PosTest1: the string corresponding Int64 is Int64 MaxValue 1");
+ try
+ {
+ string strA = Int64.MaxValue.ToString();
+ NumberStyles style = NumberStyles.Any;
+ long int64A = Int64.Parse(strA, style);
+ if (int64A != c_INT64_MaxValue)
+ {
+ TestLibrary.TestFramework.LogError("001", "the ActualResult is not the ExpectResult");
+ retVal = false;
+ }
+ }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("002", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool PosTest2()
+ {
+ bool retVal = true;
+ TestLibrary.TestFramework.BeginScenario("PosTest2: the string corresponding Int64 is Int64 MaxValue 2");
+ try
+ {
+ string strA = "7fffffffffffffff";
+ NumberStyles style = NumberStyles.HexNumber;
+ long int64A = Int64.Parse(strA, style);
+ if (int64A != c_INT64_MaxValue)
+ {
+ TestLibrary.TestFramework.LogError("003", "the ActualResult is not the ExpectResult");
+ retVal = false;
+ }
+ }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("004", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool PosTest3()
+ {
+ bool retVal = true;
+ TestLibrary.TestFramework.BeginScenario("PosTest3: the string corresponding Int64 is Int64 MinValue");
+ try
+ {
+ string strA = Int64.MinValue.ToString();
+ NumberStyles style = NumberStyles.Any;
+ long int64A = Int64.Parse(strA, style);
+ if (int64A != c_INT64_MinValue)
+ {
+ TestLibrary.TestFramework.LogError("005", "the ActualResult is not the ExpectResult");
+ retVal = false;
+ }
+ }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("006", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool PosTest4()
+ {
+ bool retVal = true;
+ TestLibrary.TestFramework.BeginScenario("PosTest4: the string format is [ws][sign]digits[ws] 1");
+ try
+ {
+ long int64A = TestLibrary.Generator.GetInt64(-55);
+ string strA = "\u0020" + "+" + int64A.ToString();
+ NumberStyles style = NumberStyles.Any;
+ long result = Int64.Parse(strA, style);
+ if (result != int64A)
+ {
+ TestLibrary.TestFramework.LogError("007", "the ActualResult is not the ExpectResult");
+ retVal = false;
+ }
+ }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("008", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool PosTest5()
+ {
+ bool retVal = true;
+ TestLibrary.TestFramework.BeginScenario("PosTest5: the string format is [ws][sign]digits[ws] 2");
+
+ try
+ {
+ long int64A = TestLibrary.Generator.GetInt64(-55);
+ string strA = "\u0020" + "-" + int64A.ToString();
+ NumberStyles style = NumberStyles.Any;
+ long result = Int64.Parse(strA, style);
+ long int64B = int64A * (-1);
+ if (result != int64B)
+ {
+ TestLibrary.TestFramework.LogError("009", "the ActualResult is not the ExpectResult");
+ retVal = false;
+ }
+ }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("010", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool PosTest6()
+ {
+ bool retVal = true;
+ TestLibrary.TestFramework.BeginScenario("PosTest6: the string format is [ws][sign]digits[ws] 3");
+
+ try
+ {
+ long int64A = TestLibrary.Generator.GetInt64(-55);
+ string strA = "\u0020" + "-" + int64A.ToString() + "\u0020";
+ NumberStyles style = NumberStyles.Any;
+ long result = Int64.Parse(strA,style);
+ long int64B = int64A * (-1);
+ if (result != int64B)
+ {
+ TestLibrary.TestFramework.LogError("011", "the ActualResult is not the ExpectResult");
+ retVal = false;
+ }
+ }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("012", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool PosTest7()
+ {
+ bool retVal = true;
+ TestLibrary.TestFramework.BeginScenario("PosTest7: the string format is [ws][sign]digits[ws] 4");
+
+ try
+ {
+ long int64A = TestLibrary.Generator.GetInt64(-55);
+ string strA = "\u0020" + "-0" + int64A.ToString() + "\u0020";
+ NumberStyles style = NumberStyles.Any;
+ long result = Int64.Parse(strA, style);
+ long int64B = int64A * (-1);
+ if (result != int64B)
+ {
+ TestLibrary.TestFramework.LogError("013", "the ActualResult is not the ExpectResult");
+ retVal = false;
+ }
+ }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("014", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ #endregion
+ #region NegativeTest
+ public bool NegTest1()
+ {
+ bool retVal = true;
+ long int64A;
+ TestLibrary.TestFramework.BeginScenario("NegTest1: the parameter string is null");
+
+ try
+ {
+ string strA = null;
+ NumberStyles style = NumberStyles.Any;
+ int64A = Int64.Parse(strA, style);
+ retVal = false;
+ TestLibrary.TestFramework.LogError("N001", "the param string is null but not throw exception");
+ }
+ catch (ArgumentNullException) { }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("N002", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool NegTest2()
+ {
+ bool retVal = true;
+ long int64A;
+ TestLibrary.TestFramework.BeginScenario("NegTest2: the parameter string is not correct format");
+
+ try
+ {
+ string strA = "#$%abc";
+ NumberStyles style = NumberStyles.Any;
+ int64A = Int64.Parse(strA, style);
+ retVal = false;
+ TestLibrary.TestFramework.LogError("N003", "the param string is null but not throw exception");
+ }
+ catch (FormatException) { }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("N004", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool NegTest3()
+ {
+ bool retVal = true;
+ TestLibrary.TestFramework.BeginScenario("NegTest3: the parameter string parsed number is less than the Int64 minValue");
+
+ try
+ {
+ string strA = "-9223372036854775809";
+ NumberStyles style = NumberStyles.Any;
+ Int64 int64A = Int64.Parse(strA, style);
+ retVal = false;
+ TestLibrary.TestFramework.LogError("N005", "the param string parsed number is less than MinValue but not throw exception");
+ }
+ catch (OverflowException) { }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("N006", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool NegTest4()
+ {
+ bool retVal = true;
+ long int64A;
+ TestLibrary.TestFramework.BeginScenario("NegTest4: the parameter string parsed number is greater than the Int64 maxValue");
+
+ try
+ {
+ string strA = "9223372036854775808";
+ NumberStyles style = NumberStyles.Any;
+ int64A = Int64.Parse(strA, style);
+ retVal = false;
+ TestLibrary.TestFramework.LogError("N007", "the param string parsed number is greater than MaxValue but not throw exception");
+ }
+ catch (OverflowException) { }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("N008", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ public bool NegTest5()
+ {
+ bool retVal = true;
+ long int64A;
+ TestLibrary.TestFramework.BeginScenario("NegTest5: the param of style is not NumberStyles value");
+
+ try
+ {
+ string strA = TestLibrary.Generator.GetInt64(-55).ToString();
+ NumberStyles style = (NumberStyles)(Int32.MaxValue);
+ int64A = Int64.Parse(strA, style);
+ retVal = false;
+ TestLibrary.TestFramework.LogError("N009", "the param of style is not NumberStyles value but not throw exception");
+ }
+ catch (ArgumentException) { }
+ catch (Exception e)
+ {
+ TestLibrary.TestFramework.LogError("N010", "Unexpected exception: " + e);
+ retVal = false;
+ }
+ return retVal;
+ }
+ #endregion
+}