From c04f18563b47c8151a7e11ed234fbb690139b24d Mon Sep 17 00:00:00 2001
From: "Thorsten (Gerbrunn)"
Date: Thu, 4 Jun 2020 18:25:05 +0200
Subject: [PATCH 1/7] Migrated FormatSpec test cases to NUnit
---
.../LanguagePrimitives/StringFormatTests.fs | 79 +++++++++++++++++++
tests/fsharp/FSharpSuite.Tests.fsproj | 1 +
.../LanguagePrimitives/FormatSpec_d_01.fs | 32 --------
.../LanguagePrimitives/FormatSpec_i_01.fs | 32 --------
.../LanguagePrimitives/FormatSpec_u_01.fs | 32 --------
.../Libraries/Core/LanguagePrimitives/env.lst | 4 -
6 files changed, 80 insertions(+), 100 deletions(-)
create mode 100644 tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs
delete mode 100644 tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_d_01.fs
delete mode 100644 tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_i_01.fs
delete mode 100644 tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_u_01.fs
diff --git a/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs
new file mode 100644
index 00000000000..665701f98fd
--- /dev/null
+++ b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs
@@ -0,0 +1,79 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+namespace FSharp.Compiler.UnitTests
+
+open NUnit.Framework
+
+module ``String Format Tests`` =
+
+ []
+ let ``sprintf with %d format specifier``() =
+ // Regression test for FSHARP1.0:4120
+ // format specifier %d does not work correctly with UInt64 values
+
+ Assert.areEqual ((sprintf "%d" System.UInt64.MaxValue), "18446744073709551615") |> ignore
+ Assert.areEqual ((sprintf "%d" System.UInt64.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%d" System.UInt32.MaxValue), "4294967295") |> ignore
+ Assert.areEqual ((sprintf "%d" System.UInt32.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%d" System.UInt16.MaxValue), "65535") |> ignore
+ Assert.areEqual ((sprintf "%d" System.UInt16.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%d" System.Byte.MaxValue), "255") |> ignore
+ Assert.areEqual ((sprintf "%d" System.Byte.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%d" System.Int64.MaxValue), "9223372036854775807") |> ignore
+ Assert.areEqual ((sprintf "%d" System.Int64.MinValue), "-9223372036854775808") |> ignore
+ Assert.areEqual ((sprintf "%d" System.Int32.MaxValue), "2147483647") |> ignore
+ Assert.areEqual ((sprintf "%d" System.Int32.MinValue), "-2147483648") |> ignore
+ Assert.areEqual ((sprintf "%d" System.Int16.MaxValue), "32767") |> ignore
+ Assert.areEqual ((sprintf "%d" System.Int16.MinValue), "-32768") |> ignore
+ Assert.areEqual ((sprintf "%d" System.SByte.MaxValue), "127") |> ignore
+ Assert.areEqual ((sprintf "%d" System.SByte.MinValue), "-128") |> ignore
+ Assert.areEqual ((sprintf "%d" 1un), "1") |> ignore
+ Assert.areEqual ((sprintf "%d" -1n), "-1") |> ignore
+
+ []
+ let ``sprintf with %i format specifier``() =
+ // Regression test for FSHARP1.0:4120
+ // format specifier %i does not work correctly with UInt64 values
+
+ Assert.areEqual ((sprintf "%i" System.UInt64.MaxValue), "18446744073709551615") |> ignore
+ Assert.areEqual ((sprintf "%i" System.UInt64.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%i" System.UInt32.MaxValue), "4294967295") |> ignore
+ Assert.areEqual ((sprintf "%i" System.UInt32.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%i" System.UInt16.MaxValue), "65535") |> ignore
+ Assert.areEqual ((sprintf "%i" System.UInt16.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%i" System.Byte.MaxValue), "255") |> ignore
+ Assert.areEqual ((sprintf "%i" System.Byte.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%i" System.Int64.MaxValue), "9223372036854775807") |> ignore
+ Assert.areEqual ((sprintf "%i" System.Int64.MinValue), "-9223372036854775808") |> ignore
+ Assert.areEqual ((sprintf "%i" System.Int32.MaxValue), "2147483647") |> ignore
+ Assert.areEqual ((sprintf "%i" System.Int32.MinValue), "-2147483648") |> ignore
+ Assert.areEqual ((sprintf "%i" System.Int16.MaxValue), "32767") |> ignore
+ Assert.areEqual ((sprintf "%i" System.Int16.MinValue), "-32768") |> ignore
+ Assert.areEqual ((sprintf "%i" System.SByte.MaxValue), "127") |> ignore
+ Assert.areEqual ((sprintf "%i" System.SByte.MinValue), "-128") |> ignore
+ Assert.areEqual ((sprintf "%i" 1un), "1") |> ignore
+ Assert.areEqual ((sprintf "%i" -1n), "-1") |> ignore
+
+ []
+ let ``sprintf with %u format specifier``() =
+ // Regression test for FSHARP1.0:4120
+ // format specifier %u does not work correctly with UInt64 values
+
+ Assert.areEqual ((sprintf "%u" System.UInt64.MaxValue), "18446744073709551615") |> ignore
+ Assert.areEqual ((sprintf "%u" System.UInt64.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%u" System.UInt32.MaxValue), "4294967295") |> ignore
+ Assert.areEqual ((sprintf "%u" System.UInt32.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%u" System.UInt16.MaxValue), "65535") |> ignore
+ Assert.areEqual ((sprintf "%u" System.UInt16.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%u" System.Byte.MaxValue), "255") |> ignore
+ Assert.areEqual ((sprintf "%u" System.Byte.MinValue), "0") |> ignore
+ Assert.areEqual ((sprintf "%u" System.Int64.MaxValue), "9223372036854775807") |> ignore
+ Assert.areEqual ((sprintf "%u" System.Int64.MinValue), "9223372036854775808") |> ignore
+ Assert.areEqual ((sprintf "%u" System.Int32.MaxValue), "2147483647") |> ignore
+ Assert.areEqual ((sprintf "%u" System.Int32.MinValue), "2147483648") |> ignore
+ Assert.areEqual ((sprintf "%u" System.Int16.MaxValue), "32767") |> ignore
+ Assert.areEqual ((sprintf "%u" System.Int16.MinValue), "32768") |> ignore
+ Assert.areEqual ((sprintf "%u" System.SByte.MaxValue), "127") |> ignore
+ Assert.areEqual ((sprintf "%u" System.SByte.MinValue), "128") |> ignore
+ Assert.areEqual ((sprintf "%u" 1un), "1") |> ignore
+ Assert.areEqual ((sprintf "%u" -1n), if System.IntPtr.Size = 4 then "4294967295" else "18446744073709551615") |> ignore
diff --git a/tests/fsharp/FSharpSuite.Tests.fsproj b/tests/fsharp/FSharpSuite.Tests.fsproj
index 0c84007859f..c9bb3841a10 100644
--- a/tests/fsharp/FSharpSuite.Tests.fsproj
+++ b/tests/fsharp/FSharpSuite.Tests.fsproj
@@ -75,6 +75,7 @@
+
diff --git a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_d_01.fs b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_d_01.fs
deleted file mode 100644
index 17ae0d72847..00000000000
--- a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_d_01.fs
+++ /dev/null
@@ -1,32 +0,0 @@
-// #Regression #Libraries #LanguagePrimitives
-// Regression test for FSHARP1.0:4120
-// format specifier %d does not work correctly with UInt64 values
-
-//
-// This test covers the usage of %d
-// All kinds of valid input are provided
-//
-
-let test = [ ((sprintf "%d" System.UInt64.MaxValue), "18446744073709551615");
- ((sprintf "%d" System.UInt64.MinValue), "0");
- ((sprintf "%d" System.UInt32.MaxValue), "4294967295");
- ((sprintf "%d" System.UInt32.MinValue), "0");
- ((sprintf "%d" System.UInt16.MaxValue), "65535");
- ((sprintf "%d" System.UInt16.MinValue), "0");
- ((sprintf "%d" System.Byte.MaxValue), "255");
- ((sprintf "%d" System.Byte.MinValue), "0");
- ((sprintf "%d" System.Int64.MaxValue), "9223372036854775807");
- ((sprintf "%d" System.Int64.MinValue), "-9223372036854775808");
- ((sprintf "%d" System.Int32.MaxValue), "2147483647");
- ((sprintf "%d" System.Int32.MinValue), "-2147483648");
- ((sprintf "%d" System.Int16.MaxValue), "32767");
- ((sprintf "%d" System.Int16.MinValue), "-32768");
- ((sprintf "%d" System.SByte.MaxValue), "127");
- ((sprintf "%d" System.SByte.MinValue), "-128");
- ((sprintf "%d" 1un), "1");
- ((sprintf "%d" -1n), "-1");
- ]
-
-let res = List.forall (fun x -> (fst x) = (snd x)) test
-
-(if res then 0 else 1) |> exit
diff --git a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_i_01.fs b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_i_01.fs
deleted file mode 100644
index e5fa47c4143..00000000000
--- a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_i_01.fs
+++ /dev/null
@@ -1,32 +0,0 @@
-// #Regression #Libraries #LanguagePrimitives
-// Regression test for FSHARP1.0:4120
-// format specifier %i does not work correctly with UInt64 values
-
-//
-// This test covers the usage of %i
-// All kinds of valid input are provided
-//
-
-let test = [ ((sprintf "%i" System.UInt64.MaxValue), "18446744073709551615");
- ((sprintf "%i" System.UInt64.MinValue), "0");
- ((sprintf "%i" System.UInt32.MaxValue), "4294967295");
- ((sprintf "%i" System.UInt32.MinValue), "0");
- ((sprintf "%i" System.UInt16.MaxValue), "65535");
- ((sprintf "%i" System.UInt16.MinValue), "0");
- ((sprintf "%i" System.Byte.MaxValue), "255");
- ((sprintf "%i" System.Byte.MinValue), "0");
- ((sprintf "%i" System.Int64.MaxValue), "9223372036854775807");
- ((sprintf "%i" System.Int64.MinValue), "-9223372036854775808");
- ((sprintf "%i" System.Int32.MaxValue), "2147483647");
- ((sprintf "%i" System.Int32.MinValue), "-2147483648");
- ((sprintf "%i" System.Int16.MaxValue), "32767");
- ((sprintf "%i" System.Int16.MinValue), "-32768");
- ((sprintf "%i" System.SByte.MaxValue), "127");
- ((sprintf "%i" System.SByte.MinValue), "-128");
- ((sprintf "%i" 1un), "1");
- ((sprintf "%i" -1n), "-1");
- ]
-
-let res = List.forall (fun x -> (fst x) = (snd x)) test
-
-(if res then 0 else 1) |> exit
diff --git a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_u_01.fs b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_u_01.fs
deleted file mode 100644
index 240b9ef9a08..00000000000
--- a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_u_01.fs
+++ /dev/null
@@ -1,32 +0,0 @@
-// #Regression #Libraries #LanguagePrimitives
-// Regression test for FSHARP1.0:4120
-// format specifier %u does not work correctly with UInt64 values
-
-//
-// This test covers the usage of %u
-// All kinds of valid input are provided
-//
-
-let test = [ ((sprintf "%u" System.UInt64.MaxValue), "18446744073709551615");
- ((sprintf "%u" System.UInt64.MinValue), "0");
- ((sprintf "%u" System.UInt32.MaxValue), "4294967295");
- ((sprintf "%u" System.UInt32.MinValue), "0");
- ((sprintf "%u" System.UInt16.MaxValue), "65535");
- ((sprintf "%u" System.UInt16.MinValue), "0");
- ((sprintf "%u" System.Byte.MaxValue), "255");
- ((sprintf "%u" System.Byte.MinValue), "0");
- ((sprintf "%u" System.Int64.MaxValue), "9223372036854775807");
- ((sprintf "%u" System.Int64.MinValue), "9223372036854775808");
- ((sprintf "%u" System.Int32.MaxValue), "2147483647");
- ((sprintf "%u" System.Int32.MinValue), "2147483648");
- ((sprintf "%u" System.Int16.MaxValue), "32767");
- ((sprintf "%u" System.Int16.MinValue), "32768");
- ((sprintf "%u" System.SByte.MaxValue), "127");
- ((sprintf "%u" System.SByte.MinValue), "128");
- ((sprintf "%u" 1un), "1");
- ((sprintf "%u" -1n), if System.IntPtr.Size = 4 then "4294967295" else "18446744073709551615");
- ]
-
-let res = List.forall (fun x -> (fst x) = (snd x)) test
-
-(if res then 0 else 1) |> exit
diff --git a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst
index 16d6bcc4799..3275cb25182 100644
--- a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst
+++ b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst
@@ -3,7 +3,3 @@ NoMT SOURCE=anytostring01.fsx FSIMODE=PIPE COMPILE_ONLY=1 # anytostring01.fsx
SOURCE=compare01.fs # compare01.fs
NoMT SOURCE=compare01.fsx FSIMODE=PIPE COMPILE_ONLY=1 # compare01.fsx
-
- SOURCE=FormatSpec_d_01.fs # FormatSpec_d_01.fs
- SOURCE=FormatSpec_i_01.fs # FormatSpec_i_01.fs
- SOURCE=FormatSpec_u_01.fs # FormatSpec_u_01.fs
From 4634e6d6b0451d86218fe13a8cdfe131a30d8b9e Mon Sep 17 00:00:00 2001
From: "Thorsten (Gerbrunn)"
Date: Thu, 4 Jun 2020 18:45:34 +0200
Subject: [PATCH 2/7] Migrated string constructor test cases to NUnit
---
.../LanguagePrimitives/StringFormatTests.fs | 167 ++++++++++++------
1 file changed, 113 insertions(+), 54 deletions(-)
diff --git a/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs
index 665701f98fd..fd080d02d95 100644
--- a/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs
+++ b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs
@@ -11,69 +11,128 @@ module ``String Format Tests`` =
// Regression test for FSHARP1.0:4120
// format specifier %d does not work correctly with UInt64 values
- Assert.areEqual ((sprintf "%d" System.UInt64.MaxValue), "18446744073709551615") |> ignore
- Assert.areEqual ((sprintf "%d" System.UInt64.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%d" System.UInt32.MaxValue), "4294967295") |> ignore
- Assert.areEqual ((sprintf "%d" System.UInt32.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%d" System.UInt16.MaxValue), "65535") |> ignore
- Assert.areEqual ((sprintf "%d" System.UInt16.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%d" System.Byte.MaxValue), "255") |> ignore
- Assert.areEqual ((sprintf "%d" System.Byte.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%d" System.Int64.MaxValue), "9223372036854775807") |> ignore
- Assert.areEqual ((sprintf "%d" System.Int64.MinValue), "-9223372036854775808") |> ignore
- Assert.areEqual ((sprintf "%d" System.Int32.MaxValue), "2147483647") |> ignore
- Assert.areEqual ((sprintf "%d" System.Int32.MinValue), "-2147483648") |> ignore
- Assert.areEqual ((sprintf "%d" System.Int16.MaxValue), "32767") |> ignore
- Assert.areEqual ((sprintf "%d" System.Int16.MinValue), "-32768") |> ignore
- Assert.areEqual ((sprintf "%d" System.SByte.MaxValue), "127") |> ignore
- Assert.areEqual ((sprintf "%d" System.SByte.MinValue), "-128") |> ignore
- Assert.areEqual ((sprintf "%d" 1un), "1") |> ignore
- Assert.areEqual ((sprintf "%d" -1n), "-1") |> ignore
+ Assert.areEqual (sprintf "%d" System.UInt64.MaxValue) "18446744073709551615"
+ Assert.areEqual (sprintf "%d" System.UInt64.MinValue) "0"
+ Assert.areEqual (sprintf "%d" System.UInt32.MaxValue) "4294967295"
+ Assert.areEqual (sprintf "%d" System.UInt32.MinValue) "0"
+ Assert.areEqual (sprintf "%d" System.UInt16.MaxValue) "65535"
+ Assert.areEqual (sprintf "%d" System.UInt16.MinValue) "0"
+ Assert.areEqual (sprintf "%d" System.Byte.MaxValue) "255"
+ Assert.areEqual (sprintf "%d" System.Byte.MinValue) "0"
+ Assert.areEqual (sprintf "%d" System.Int64.MaxValue) "9223372036854775807"
+ Assert.areEqual (sprintf "%d" System.Int64.MinValue) "-9223372036854775808"
+ Assert.areEqual (sprintf "%d" System.Int32.MaxValue) "2147483647"
+ Assert.areEqual (sprintf "%d" System.Int32.MinValue) "-2147483648"
+ Assert.areEqual (sprintf "%d" System.Int16.MaxValue) "32767"
+ Assert.areEqual (sprintf "%d" System.Int16.MinValue) "-32768"
+ Assert.areEqual (sprintf "%d" System.SByte.MaxValue) "127"
+ Assert.areEqual (sprintf "%d" System.SByte.MinValue) "-128"
+ Assert.areEqual (sprintf "%d" 1un) "1"
+ Assert.areEqual (sprintf "%d" -1n) "-1"
[]
let ``sprintf with %i format specifier``() =
// Regression test for FSHARP1.0:4120
// format specifier %i does not work correctly with UInt64 values
- Assert.areEqual ((sprintf "%i" System.UInt64.MaxValue), "18446744073709551615") |> ignore
- Assert.areEqual ((sprintf "%i" System.UInt64.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%i" System.UInt32.MaxValue), "4294967295") |> ignore
- Assert.areEqual ((sprintf "%i" System.UInt32.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%i" System.UInt16.MaxValue), "65535") |> ignore
- Assert.areEqual ((sprintf "%i" System.UInt16.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%i" System.Byte.MaxValue), "255") |> ignore
- Assert.areEqual ((sprintf "%i" System.Byte.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%i" System.Int64.MaxValue), "9223372036854775807") |> ignore
- Assert.areEqual ((sprintf "%i" System.Int64.MinValue), "-9223372036854775808") |> ignore
- Assert.areEqual ((sprintf "%i" System.Int32.MaxValue), "2147483647") |> ignore
- Assert.areEqual ((sprintf "%i" System.Int32.MinValue), "-2147483648") |> ignore
- Assert.areEqual ((sprintf "%i" System.Int16.MaxValue), "32767") |> ignore
- Assert.areEqual ((sprintf "%i" System.Int16.MinValue), "-32768") |> ignore
- Assert.areEqual ((sprintf "%i" System.SByte.MaxValue), "127") |> ignore
- Assert.areEqual ((sprintf "%i" System.SByte.MinValue), "-128") |> ignore
- Assert.areEqual ((sprintf "%i" 1un), "1") |> ignore
- Assert.areEqual ((sprintf "%i" -1n), "-1") |> ignore
+ Assert.areEqual (sprintf "%i" System.UInt64.MaxValue) "18446744073709551615"
+ Assert.areEqual (sprintf "%i" System.UInt64.MinValue) "0"
+ Assert.areEqual (sprintf "%i" System.UInt32.MaxValue) "4294967295"
+ Assert.areEqual (sprintf "%i" System.UInt32.MinValue) "0"
+ Assert.areEqual (sprintf "%i" System.UInt16.MaxValue) "65535"
+ Assert.areEqual (sprintf "%i" System.UInt16.MinValue) "0"
+ Assert.areEqual (sprintf "%i" System.Byte.MaxValue) "255"
+ Assert.areEqual (sprintf "%i" System.Byte.MinValue) "0"
+ Assert.areEqual (sprintf "%i" System.Int64.MaxValue) "9223372036854775807"
+ Assert.areEqual (sprintf "%i" System.Int64.MinValue) "-9223372036854775808"
+ Assert.areEqual (sprintf "%i" System.Int32.MaxValue) "2147483647"
+ Assert.areEqual (sprintf "%i" System.Int32.MinValue) "-2147483648"
+ Assert.areEqual (sprintf "%i" System.Int16.MaxValue) "32767"
+ Assert.areEqual (sprintf "%i" System.Int16.MinValue) "-32768"
+ Assert.areEqual (sprintf "%i" System.SByte.MaxValue) "127"
+ Assert.areEqual (sprintf "%i" System.SByte.MinValue) "-128"
+ Assert.areEqual (sprintf "%i" 1un) "1"
+ Assert.areEqual (sprintf "%i" -1n) "-1"
[]
let ``sprintf with %u format specifier``() =
// Regression test for FSHARP1.0:4120
// format specifier %u does not work correctly with UInt64 values
- Assert.areEqual ((sprintf "%u" System.UInt64.MaxValue), "18446744073709551615") |> ignore
- Assert.areEqual ((sprintf "%u" System.UInt64.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%u" System.UInt32.MaxValue), "4294967295") |> ignore
- Assert.areEqual ((sprintf "%u" System.UInt32.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%u" System.UInt16.MaxValue), "65535") |> ignore
- Assert.areEqual ((sprintf "%u" System.UInt16.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%u" System.Byte.MaxValue), "255") |> ignore
- Assert.areEqual ((sprintf "%u" System.Byte.MinValue), "0") |> ignore
- Assert.areEqual ((sprintf "%u" System.Int64.MaxValue), "9223372036854775807") |> ignore
- Assert.areEqual ((sprintf "%u" System.Int64.MinValue), "9223372036854775808") |> ignore
- Assert.areEqual ((sprintf "%u" System.Int32.MaxValue), "2147483647") |> ignore
- Assert.areEqual ((sprintf "%u" System.Int32.MinValue), "2147483648") |> ignore
- Assert.areEqual ((sprintf "%u" System.Int16.MaxValue), "32767") |> ignore
- Assert.areEqual ((sprintf "%u" System.Int16.MinValue), "32768") |> ignore
- Assert.areEqual ((sprintf "%u" System.SByte.MaxValue), "127") |> ignore
- Assert.areEqual ((sprintf "%u" System.SByte.MinValue), "128") |> ignore
- Assert.areEqual ((sprintf "%u" 1un), "1") |> ignore
- Assert.areEqual ((sprintf "%u" -1n), if System.IntPtr.Size = 4 then "4294967295" else "18446744073709551615") |> ignore
+ Assert.areEqual (sprintf "%u" System.UInt64.MaxValue) "18446744073709551615"
+ Assert.areEqual (sprintf "%u" System.UInt64.MinValue) "0"
+ Assert.areEqual (sprintf "%u" System.UInt32.MaxValue) "4294967295"
+ Assert.areEqual (sprintf "%u" System.UInt32.MinValue) "0"
+ Assert.areEqual (sprintf "%u" System.UInt16.MaxValue) "65535"
+ Assert.areEqual (sprintf "%u" System.UInt16.MinValue) "0"
+ Assert.areEqual (sprintf "%u" System.Byte.MaxValue) "255"
+ Assert.areEqual (sprintf "%u" System.Byte.MinValue) "0"
+ Assert.areEqual (sprintf "%u" System.Int64.MaxValue) "9223372036854775807"
+ Assert.areEqual (sprintf "%u" System.Int64.MinValue) "9223372036854775808"
+ Assert.areEqual (sprintf "%u" System.Int32.MaxValue) "2147483647"
+ Assert.areEqual (sprintf "%u" System.Int32.MinValue) "2147483648"
+ Assert.areEqual (sprintf "%u" System.Int16.MaxValue) "32767"
+ Assert.areEqual (sprintf "%u" System.Int16.MinValue) "32768"
+ Assert.areEqual (sprintf "%u" System.SByte.MaxValue) "127"
+ Assert.areEqual (sprintf "%u" System.SByte.MinValue) "128"
+ Assert.areEqual (sprintf "%u" 1un) "1"
+ Assert.areEqual (sprintf "%u" -1n) (if System.IntPtr.Size = 4 then "4294967295" else "18446744073709551615")
+
+ []
+ let ``string constructor``() =
+ // Regression test for FSHARP1.0:5894
+
+ Assert.areEqual (string 1.0f) "1"
+ Assert.areEqual (string 1.00001f) "1.00001"
+ Assert.areEqual (string -1.00001f) "-1.00001"
+ Assert.areEqual (string 1.0) "1"
+ Assert.areEqual (string 1.00001) "1.00001"
+ Assert.areEqual (string -1.00001) "-1.00001"
+ Assert.areEqual (string System.SByte.MaxValue) "127"
+ Assert.areEqual (string System.SByte.MinValue) "-128"
+ Assert.areEqual (string 0y) "0"
+ Assert.areEqual (string -1y) "-1"
+ Assert.areEqual (string 1y) "1"
+ Assert.areEqual (string System.Byte.MaxValue) "255"
+ Assert.areEqual (string System.Byte.MinValue) "0"
+ Assert.areEqual (string 0uy) "0"
+ Assert.areEqual (string 1uy) "1"
+ Assert.areEqual (string System.Int16.MaxValue) "32767"
+ Assert.areEqual (string System.Int16.MinValue) "-32768"
+ Assert.areEqual (string 0s) "0"
+ Assert.areEqual (string -10s) "-10"
+ Assert.areEqual (string 10s) "10"
+ Assert.areEqual (string System.UInt16.MaxValue) "65535"
+ Assert.areEqual (string System.UInt16.MinValue) "0"
+ Assert.areEqual (string 0us) "0"
+ Assert.areEqual (string 110us) "110"
+ Assert.areEqual (string System.Int32.MaxValue) "2147483647"
+ Assert.areEqual (string System.Int32.MinValue) "-2147483648"
+ Assert.areEqual (string 0) "0"
+ Assert.areEqual (string -10) "-10"
+ Assert.areEqual (string 10) "10"
+ Assert.areEqual (string System.UInt32.MaxValue) "4294967295"
+ Assert.areEqual (string System.UInt32.MinValue) "0"
+ Assert.areEqual (string 0u) "0"
+ Assert.areEqual (string 10u) "10"
+ Assert.areEqual (string System.Int64.MaxValue) "9223372036854775807"
+ Assert.areEqual (string System.Int64.MinValue) "-9223372036854775808"
+ Assert.areEqual (string 0L) "0"
+ Assert.areEqual (string -10L) "-10"
+ Assert.areEqual (string 10L) "10"
+ Assert.areEqual (string System.UInt64.MaxValue) "18446744073709551615"
+ Assert.areEqual (string System.UInt64.MinValue) "0"
+ Assert.areEqual (string 0UL) "0"
+ Assert.areEqual (string 10UL) "10"
+ Assert.areEqual (string System.Decimal.MaxValue) "79228162514264337593543950335"
+ Assert.areEqual (string System.Decimal.MinValue) "-79228162514264337593543950335"
+ Assert.areEqual (string System.Decimal.Zero) "0"
+ Assert.areEqual (string 12345678M) "12345678"
+ Assert.areEqual (string -12345678M) "-12345678"
+ Assert.areEqual (string -infinity) "-Infinity"
+ Assert.areEqual (string infinity) "Infinity"
+ Assert.areEqual (string nan) "NaN"
+ Assert.areEqual (string -infinityf) "-Infinity"
+ Assert.areEqual (string infinityf) "Infinity"
+ Assert.areEqual (string nanf) "NaN"
+ Assert.areEqual (string (new System.Guid("210f4d6b-cb42-4b09-baa1-f1aa8e59d4b0"))) "210f4d6b-cb42-4b09-baa1-f1aa8e59d4b0"
From cba1bd7f5f49cdee102d844cfa0d660fe3a9d107 Mon Sep 17 00:00:00 2001
From: "Thorsten (Gerbrunn)"
Date: Thu, 4 Jun 2020 18:47:57 +0200
Subject: [PATCH 3/7] Unlisted migrated test cases from env.lst
---
.../Core/LanguagePrimitives/anytostring01.fs | 87 -------------------
.../Libraries/Core/LanguagePrimitives/env.lst | 2 +-
2 files changed, 1 insertion(+), 88 deletions(-)
delete mode 100644 tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/anytostring01.fs
diff --git a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/anytostring01.fs b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/anytostring01.fs
deleted file mode 100644
index 59ff2ee3409..00000000000
--- a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/anytostring01.fs
+++ /dev/null
@@ -1,87 +0,0 @@
-// #Regression #Libraries #LanguagePrimitives #ReqNOMT
-// Regression test for FSHARP1.0:5894
-//
-
-let v = [
- (string 1.0f);
- (string 1.00001f);
- (string -1.00001f);
-
- (string 1.0);
- (string 1.00001);
- (string -1.00001);
-
- (string System.SByte.MaxValue);
- (string System.SByte.MinValue);
- (string 0y);
- (string -1y);
- (string 1y);
-
- (string System.Byte.MaxValue);
- (string System.Byte.MinValue);
- (string 0uy);
- (string 1uy);
-
- (string System.Int16.MaxValue);
- (string System.Int16.MinValue);
- (string 0s);
- (string -10s);
- (string 10s);
-
- (string System.UInt16.MaxValue);
- (string System.UInt16.MinValue);
- (string 0us);
- (string 110us);
-
- (string System.Int32.MaxValue);
- (string System.Int32.MinValue);
- (string 0);
- (string -10);
- (string 10);
-
- (string System.UInt32.MaxValue);
- (string System.UInt32.MinValue);
- (string 0u);
- (string 10u);
-
- (string System.Int64.MaxValue);
- (string System.Int64.MinValue);
- (string 0L);
- (string -10L);
- (string 10L);
-
- (string System.UInt64.MaxValue);
- (string System.UInt64.MinValue);
- (string 0UL);
- (string 10UL);
-
- (string System.Decimal.MaxValue);
- (string System.Decimal.MinValue);
- (string System.Decimal.Zero);
- (string 12345678M);
- (string -12345678M);
-
- (string -infinity);
- (string infinity);
- (string nan);
-
- (string -infinityf);
- (string infinityf);
- (string nanf);
-
- (string (new System.Guid("210f4d6b-cb42-4b09-baa1-f1aa8e59d4b0")))
-
- ]
-
-let expected = ["1"; "1.00001"; "-1.00001"; "1"; "1.00001"; "-1.00001"; "127"; "-128"; "0";
- "-1"; "1"; "255"; "0"; "0"; "1"; "32767"; "-32768"; "0"; "-10"; "10";
- "65535"; "0"; "0"; "110"; "2147483647"; "-2147483648"; "0"; "-10"; "10";
- "4294967295"; "0"; "0"; "10"; "9223372036854775807"; "-9223372036854775808";
- "0"; "-10"; "10"; "18446744073709551615"; "0"; "0"; "10";
- "79228162514264337593543950335"; "-79228162514264337593543950335"; "0";
- "12345678"; "-12345678"; "-Infinity"; "Infinity"; "NaN"; "-Infinity";
- "Infinity"; "NaN";
- "210f4d6b-cb42-4b09-baa1-f1aa8e59d4b0"]
-
-exit <| if v = expected then 0 else 1
-
diff --git a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst
index 3275cb25182..0baa06294fe 100644
--- a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst
+++ b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst
@@ -1,4 +1,4 @@
- SOURCE=anytostring01.fs # anytostring01.fs
+
NoMT SOURCE=anytostring01.fsx FSIMODE=PIPE COMPILE_ONLY=1 # anytostring01.fsx
SOURCE=compare01.fs # compare01.fs
From c9d16fea16249a6871f28c74d3c470856ab68c5f Mon Sep 17 00:00:00 2001
From: "Thorsten (Gerbrunn)"
Date: Thu, 4 Jun 2020 18:56:12 +0200
Subject: [PATCH 4/7] Migrated comparison test cases to NUnit
---
.../Core/LanguagePrimitives/ComparisonTests.fs | 18 ++++++++++++++++++
tests/fsharp/FSharpSuite.Tests.fsproj | 1 +
.../Core/LanguagePrimitives/compare01.fs | 11 -----------
.../Libraries/Core/LanguagePrimitives/env.lst | 3 ---
4 files changed, 19 insertions(+), 14 deletions(-)
create mode 100644 tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/ComparisonTests.fs
delete mode 100644 tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/compare01.fs
diff --git a/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/ComparisonTests.fs b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/ComparisonTests.fs
new file mode 100644
index 00000000000..de00fbcb974
--- /dev/null
+++ b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/ComparisonTests.fs
@@ -0,0 +1,18 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+namespace FSharp.Compiler.UnitTests
+
+open NUnit.Framework
+
+module ``Comparison Tests`` =
+
+ type 'a www = W of 'a
+
+ []
+ let ``Comparisons with wrapped NaN``() =
+ // Regression test for FSHARP1.0:5640
+ // This is a sanity test: more coverage in FSHARP suite...
+
+ Assert.IsFalse (W System.Double.NaN = W System.Double.NaN)
+ Assert.IsTrue ((W System.Double.NaN).Equals(W System.Double.NaN))
+ Assert.areEqual (compare (W System.Double.NaN) (W System.Double.NaN)) 0
\ No newline at end of file
diff --git a/tests/fsharp/FSharpSuite.Tests.fsproj b/tests/fsharp/FSharpSuite.Tests.fsproj
index c9bb3841a10..847e06ab32b 100644
--- a/tests/fsharp/FSharpSuite.Tests.fsproj
+++ b/tests/fsharp/FSharpSuite.Tests.fsproj
@@ -75,6 +75,7 @@
+
diff --git a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/compare01.fs b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/compare01.fs
deleted file mode 100644
index 4ff6d56b57c..00000000000
--- a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/compare01.fs
+++ /dev/null
@@ -1,11 +0,0 @@
-// #Regression #Libraries #LanguagePrimitives #ReqNOMT
-// Regression test for FSHARP1.0:5640
-// This is a sanity test: more coverage in FSHARP suite...
-//
-
-type 'a www = W of 'a
-let p = W System.Double.NaN = W System.Double.NaN // false (PER semantic)
-let q = (W System.Double.NaN).Equals(W System.Double.NaN) // true (ER semantic)
-let z = compare (W System.Double.NaN) (W System.Double.NaN) // 0
-
-(if (not p) && q && (z=0) then 0 else 1) |> exit
diff --git a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst
index 0baa06294fe..7e5badf8903 100644
--- a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst
+++ b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/env.lst
@@ -1,5 +1,2 @@
-
NoMT SOURCE=anytostring01.fsx FSIMODE=PIPE COMPILE_ONLY=1 # anytostring01.fsx
-
- SOURCE=compare01.fs # compare01.fs
NoMT SOURCE=compare01.fsx FSIMODE=PIPE COMPILE_ONLY=1 # compare01.fsx
From f18242f81bbbbb11e371c5543ad23e23cd4e250c Mon Sep 17 00:00:00 2001
From: "Thorsten (Gerbrunn)"
Date: Thu, 4 Jun 2020 19:08:59 +0200
Subject: [PATCH 5/7] Migrated cast to units test cases to NUnit
---
.../LanguagePrimitives/CastToUnitsTests.fs | 29 +++++++++++++++++++
tests/fsharp/FSharpSuite.Tests.fsproj | 1 +
.../Core/LanguagePrimitives/CastToUnits01.fs | 20 -------------
3 files changed, 30 insertions(+), 20 deletions(-)
create mode 100644 tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/CastToUnitsTests.fs
delete mode 100644 tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/CastToUnits01.fs
diff --git a/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/CastToUnitsTests.fs b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/CastToUnitsTests.fs
new file mode 100644
index 00000000000..d53f23d6ab0
--- /dev/null
+++ b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/CastToUnitsTests.fs
@@ -0,0 +1,29 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+namespace FSharp.Compiler.UnitTests
+
+open NUnit.Framework
+open FSharp.TestHelpers
+
+[]
+module ``Cast to Units Tests`` =
+
+ []
+ let ``Casting to Measures should compile``() =
+ CompilerAssert.Pass
+ """
+module M
+
+open Microsoft.FSharp.Core.LanguagePrimitives
+
+[]
+type M
+
+let r1 = SByteWithMeasure 1y + 2y
+let r2 = Int16WithMeasure 2s - 2s
+let r3 = Int32WithMeasure 3 * 3
+let r4 = Int64WithMeasure 5L / 5L
+let r5 = FloatWithMeasure 11.11 + 1.1
+let r6 = Float32WithMeasure 22.22f - 11.11f
+let r7 = DecimalWithMeasure 33.33M * 44.44M
+ """
\ No newline at end of file
diff --git a/tests/fsharp/FSharpSuite.Tests.fsproj b/tests/fsharp/FSharpSuite.Tests.fsproj
index 847e06ab32b..46cab3c2a27 100644
--- a/tests/fsharp/FSharpSuite.Tests.fsproj
+++ b/tests/fsharp/FSharpSuite.Tests.fsproj
@@ -75,6 +75,7 @@
+
diff --git a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/CastToUnits01.fs b/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/CastToUnits01.fs
deleted file mode 100644
index 571c788c397..00000000000
--- a/tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/CastToUnits01.fs
+++ /dev/null
@@ -1,20 +0,0 @@
-// #Regression #Libraries #LanguagePrimitives
-// Regression for FSHARP1.0:5794
-// New functions to cast dimensionless value to unitful value
-
-module M
-
-open Microsoft.FSharp.Core.LanguagePrimitives
-
-[]
-type M
-
-let r1 = SByteWithMeasure 1y + 2y
-let r2 = Int16WithMeasure 2s - 2s
-let r3 = Int32WithMeasure 3 * 3
-let r4 = Int64WithMeasure 5L / 5L
-let r5 = FloatWithMeasure 11.11 + 1.1
-let r6 = Float32WithMeasure 22.22f - 11.11f
-let r7 = DecimalWithMeasure 33.33M * 44.44M
-
-exit 0
From 5fa2569be8301ae0dd09375347aa845671a43fa7 Mon Sep 17 00:00:00 2001
From: "Thorsten (Gerbrunn)"
Date: Thu, 4 Jun 2020 19:09:29 +0200
Subject: [PATCH 6/7] Cleanup
---
.../Libraries/Core/LanguagePrimitives/ComparisonTests.fs | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/ComparisonTests.fs b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/ComparisonTests.fs
index de00fbcb974..c4547842f40 100644
--- a/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/ComparisonTests.fs
+++ b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/ComparisonTests.fs
@@ -4,6 +4,7 @@ namespace FSharp.Compiler.UnitTests
open NUnit.Framework
+[]
module ``Comparison Tests`` =
type 'a www = W of 'a
From f4c1a10fc88735c613ee5a709a0c02206d4f0be9 Mon Sep 17 00:00:00 2001
From: "Thorsten (Gerbrunn)"
Date: Thu, 4 Jun 2020 20:59:55 +0200
Subject: [PATCH 7/7] Cleanup
---
.../Libraries/Core/LanguagePrimitives/StringFormatTests.fs | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs
index fd080d02d95..c2ad00ab3fb 100644
--- a/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs
+++ b/tests/fsharp/Compiler/Libraries/Core/LanguagePrimitives/StringFormatTests.fs
@@ -4,6 +4,7 @@ namespace FSharp.Compiler.UnitTests
open NUnit.Framework
+[]
module ``String Format Tests`` =
[]