Skip to content

Commit 526f35b

Browse files
Moved fsharpqa/Libraries/Core/LanguagePrimitives test cases to NUnit (#9396)
* Migrated FormatSpec test cases to NUnit * Migrated string constructor test cases to NUnit * Unlisted migrated test cases from env.lst * Migrated comparison test cases to NUnit * Migrated cast to units test cases to NUnit * Cleanup * Cleanup
1 parent 5c7e832 commit 526f35b

File tree

11 files changed

+190
-221
lines changed

11 files changed

+190
-221
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
2+
3+
namespace FSharp.Compiler.UnitTests
4+
5+
open NUnit.Framework
6+
open FSharp.TestHelpers
7+
8+
[<TestFixture>]
9+
module ``Cast to Units Tests`` =
10+
11+
[<Test>]
12+
let ``Casting to Measures should compile``() =
13+
CompilerAssert.Pass
14+
"""
15+
module M
16+
17+
open Microsoft.FSharp.Core.LanguagePrimitives
18+
19+
[<Measure>]
20+
type M
21+
22+
let r1 = SByteWithMeasure<M> 1y + 2y<M>
23+
let r2 = Int16WithMeasure<M> 2s - 2s<M>
24+
let r3 = Int32WithMeasure<M> 3 * 3<M>
25+
let r4 = Int64WithMeasure<M> 5L / 5L<M>
26+
let r5 = FloatWithMeasure<M> 11.11 + 1.1<M>
27+
let r6 = Float32WithMeasure<M> 22.22f - 11.11f<M>
28+
let r7 = DecimalWithMeasure<M> 33.33M * 44.44M<M>
29+
"""
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
2+
3+
namespace FSharp.Compiler.UnitTests
4+
5+
open NUnit.Framework
6+
7+
[<TestFixture>]
8+
module ``Comparison Tests`` =
9+
10+
type 'a www = W of 'a
11+
12+
[<Test>]
13+
let ``Comparisons with wrapped NaN``() =
14+
// Regression test for FSHARP1.0:5640
15+
// This is a sanity test: more coverage in FSHARP suite...
16+
17+
Assert.IsFalse (W System.Double.NaN = W System.Double.NaN)
18+
Assert.IsTrue ((W System.Double.NaN).Equals(W System.Double.NaN))
19+
Assert.areEqual (compare (W System.Double.NaN) (W System.Double.NaN)) 0
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
2+
3+
namespace FSharp.Compiler.UnitTests
4+
5+
open NUnit.Framework
6+
7+
[<TestFixture>]
8+
module ``String Format Tests`` =
9+
10+
[<Test>]
11+
let ``sprintf with %d format specifier``() =
12+
// Regression test for FSHARP1.0:4120
13+
// format specifier %d does not work correctly with UInt64 values
14+
15+
Assert.areEqual (sprintf "%d" System.UInt64.MaxValue) "18446744073709551615"
16+
Assert.areEqual (sprintf "%d" System.UInt64.MinValue) "0"
17+
Assert.areEqual (sprintf "%d" System.UInt32.MaxValue) "4294967295"
18+
Assert.areEqual (sprintf "%d" System.UInt32.MinValue) "0"
19+
Assert.areEqual (sprintf "%d" System.UInt16.MaxValue) "65535"
20+
Assert.areEqual (sprintf "%d" System.UInt16.MinValue) "0"
21+
Assert.areEqual (sprintf "%d" System.Byte.MaxValue) "255"
22+
Assert.areEqual (sprintf "%d" System.Byte.MinValue) "0"
23+
Assert.areEqual (sprintf "%d" System.Int64.MaxValue) "9223372036854775807"
24+
Assert.areEqual (sprintf "%d" System.Int64.MinValue) "-9223372036854775808"
25+
Assert.areEqual (sprintf "%d" System.Int32.MaxValue) "2147483647"
26+
Assert.areEqual (sprintf "%d" System.Int32.MinValue) "-2147483648"
27+
Assert.areEqual (sprintf "%d" System.Int16.MaxValue) "32767"
28+
Assert.areEqual (sprintf "%d" System.Int16.MinValue) "-32768"
29+
Assert.areEqual (sprintf "%d" System.SByte.MaxValue) "127"
30+
Assert.areEqual (sprintf "%d" System.SByte.MinValue) "-128"
31+
Assert.areEqual (sprintf "%d" 1un) "1"
32+
Assert.areEqual (sprintf "%d" -1n) "-1"
33+
34+
[<Test>]
35+
let ``sprintf with %i format specifier``() =
36+
// Regression test for FSHARP1.0:4120
37+
// format specifier %i does not work correctly with UInt64 values
38+
39+
Assert.areEqual (sprintf "%i" System.UInt64.MaxValue) "18446744073709551615"
40+
Assert.areEqual (sprintf "%i" System.UInt64.MinValue) "0"
41+
Assert.areEqual (sprintf "%i" System.UInt32.MaxValue) "4294967295"
42+
Assert.areEqual (sprintf "%i" System.UInt32.MinValue) "0"
43+
Assert.areEqual (sprintf "%i" System.UInt16.MaxValue) "65535"
44+
Assert.areEqual (sprintf "%i" System.UInt16.MinValue) "0"
45+
Assert.areEqual (sprintf "%i" System.Byte.MaxValue) "255"
46+
Assert.areEqual (sprintf "%i" System.Byte.MinValue) "0"
47+
Assert.areEqual (sprintf "%i" System.Int64.MaxValue) "9223372036854775807"
48+
Assert.areEqual (sprintf "%i" System.Int64.MinValue) "-9223372036854775808"
49+
Assert.areEqual (sprintf "%i" System.Int32.MaxValue) "2147483647"
50+
Assert.areEqual (sprintf "%i" System.Int32.MinValue) "-2147483648"
51+
Assert.areEqual (sprintf "%i" System.Int16.MaxValue) "32767"
52+
Assert.areEqual (sprintf "%i" System.Int16.MinValue) "-32768"
53+
Assert.areEqual (sprintf "%i" System.SByte.MaxValue) "127"
54+
Assert.areEqual (sprintf "%i" System.SByte.MinValue) "-128"
55+
Assert.areEqual (sprintf "%i" 1un) "1"
56+
Assert.areEqual (sprintf "%i" -1n) "-1"
57+
58+
[<Test>]
59+
let ``sprintf with %u format specifier``() =
60+
// Regression test for FSHARP1.0:4120
61+
// format specifier %u does not work correctly with UInt64 values
62+
63+
Assert.areEqual (sprintf "%u" System.UInt64.MaxValue) "18446744073709551615"
64+
Assert.areEqual (sprintf "%u" System.UInt64.MinValue) "0"
65+
Assert.areEqual (sprintf "%u" System.UInt32.MaxValue) "4294967295"
66+
Assert.areEqual (sprintf "%u" System.UInt32.MinValue) "0"
67+
Assert.areEqual (sprintf "%u" System.UInt16.MaxValue) "65535"
68+
Assert.areEqual (sprintf "%u" System.UInt16.MinValue) "0"
69+
Assert.areEqual (sprintf "%u" System.Byte.MaxValue) "255"
70+
Assert.areEqual (sprintf "%u" System.Byte.MinValue) "0"
71+
Assert.areEqual (sprintf "%u" System.Int64.MaxValue) "9223372036854775807"
72+
Assert.areEqual (sprintf "%u" System.Int64.MinValue) "9223372036854775808"
73+
Assert.areEqual (sprintf "%u" System.Int32.MaxValue) "2147483647"
74+
Assert.areEqual (sprintf "%u" System.Int32.MinValue) "2147483648"
75+
Assert.areEqual (sprintf "%u" System.Int16.MaxValue) "32767"
76+
Assert.areEqual (sprintf "%u" System.Int16.MinValue) "32768"
77+
Assert.areEqual (sprintf "%u" System.SByte.MaxValue) "127"
78+
Assert.areEqual (sprintf "%u" System.SByte.MinValue) "128"
79+
Assert.areEqual (sprintf "%u" 1un) "1"
80+
Assert.areEqual (sprintf "%u" -1n) (if System.IntPtr.Size = 4 then "4294967295" else "18446744073709551615")
81+
82+
[<Test>]
83+
let ``string constructor``() =
84+
// Regression test for FSHARP1.0:5894
85+
86+
Assert.areEqual (string 1.0f) "1"
87+
Assert.areEqual (string 1.00001f) "1.00001"
88+
Assert.areEqual (string -1.00001f) "-1.00001"
89+
Assert.areEqual (string 1.0) "1"
90+
Assert.areEqual (string 1.00001) "1.00001"
91+
Assert.areEqual (string -1.00001) "-1.00001"
92+
Assert.areEqual (string System.SByte.MaxValue) "127"
93+
Assert.areEqual (string System.SByte.MinValue) "-128"
94+
Assert.areEqual (string 0y) "0"
95+
Assert.areEqual (string -1y) "-1"
96+
Assert.areEqual (string 1y) "1"
97+
Assert.areEqual (string System.Byte.MaxValue) "255"
98+
Assert.areEqual (string System.Byte.MinValue) "0"
99+
Assert.areEqual (string 0uy) "0"
100+
Assert.areEqual (string 1uy) "1"
101+
Assert.areEqual (string System.Int16.MaxValue) "32767"
102+
Assert.areEqual (string System.Int16.MinValue) "-32768"
103+
Assert.areEqual (string 0s) "0"
104+
Assert.areEqual (string -10s) "-10"
105+
Assert.areEqual (string 10s) "10"
106+
Assert.areEqual (string System.UInt16.MaxValue) "65535"
107+
Assert.areEqual (string System.UInt16.MinValue) "0"
108+
Assert.areEqual (string 0us) "0"
109+
Assert.areEqual (string 110us) "110"
110+
Assert.areEqual (string System.Int32.MaxValue) "2147483647"
111+
Assert.areEqual (string System.Int32.MinValue) "-2147483648"
112+
Assert.areEqual (string 0) "0"
113+
Assert.areEqual (string -10) "-10"
114+
Assert.areEqual (string 10) "10"
115+
Assert.areEqual (string System.UInt32.MaxValue) "4294967295"
116+
Assert.areEqual (string System.UInt32.MinValue) "0"
117+
Assert.areEqual (string 0u) "0"
118+
Assert.areEqual (string 10u) "10"
119+
Assert.areEqual (string System.Int64.MaxValue) "9223372036854775807"
120+
Assert.areEqual (string System.Int64.MinValue) "-9223372036854775808"
121+
Assert.areEqual (string 0L) "0"
122+
Assert.areEqual (string -10L) "-10"
123+
Assert.areEqual (string 10L) "10"
124+
Assert.areEqual (string System.UInt64.MaxValue) "18446744073709551615"
125+
Assert.areEqual (string System.UInt64.MinValue) "0"
126+
Assert.areEqual (string 0UL) "0"
127+
Assert.areEqual (string 10UL) "10"
128+
Assert.areEqual (string System.Decimal.MaxValue) "79228162514264337593543950335"
129+
Assert.areEqual (string System.Decimal.MinValue) "-79228162514264337593543950335"
130+
Assert.areEqual (string System.Decimal.Zero) "0"
131+
Assert.areEqual (string 12345678M) "12345678"
132+
Assert.areEqual (string -12345678M) "-12345678"
133+
Assert.areEqual (string -infinity) "-Infinity"
134+
Assert.areEqual (string infinity) "Infinity"
135+
Assert.areEqual (string nan) "NaN"
136+
Assert.areEqual (string -infinityf) "-Infinity"
137+
Assert.areEqual (string infinityf) "Infinity"
138+
Assert.areEqual (string nanf) "NaN"
139+
Assert.areEqual (string (new System.Guid("210f4d6b-cb42-4b09-baa1-f1aa8e59d4b0"))) "210f4d6b-cb42-4b09-baa1-f1aa8e59d4b0"

tests/fsharp/FSharpSuite.Tests.fsproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@
7575
<Compile Include="Compiler\Stress\LargeExprTests.fs" />
7676
<Compile Include="Compiler\Regressions\IndexerRegressionTests.fs" />
7777
<Compile Include="Compiler\Regressions\ForInDoMutableRegressionTest.fs" />
78+
<Compile Include="Compiler\Libraries\Core\LanguagePrimitives\CastToUnitsTests.fs" />
79+
<Compile Include="Compiler\Libraries\Core\LanguagePrimitives\ComparisonTests.fs" />
80+
<Compile Include="Compiler\Libraries\Core\LanguagePrimitives\StringFormatTests.fs" />
7881
<Compile Include="Compiler\Libraries\Core\Collections\IEnumerableTests.fs" />
7982
<Compile Include="Compiler\Libraries\Core\Collections\MapTests.fs" />
8083
<Compile Include="Compiler\Libraries\Core\Collections\CollectionTests.fs" />

tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/CastToUnits01.fs

Lines changed: 0 additions & 20 deletions
This file was deleted.

tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_d_01.fs

Lines changed: 0 additions & 32 deletions
This file was deleted.

tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_i_01.fs

Lines changed: 0 additions & 32 deletions
This file was deleted.

tests/fsharpqa/Source/Libraries/Core/LanguagePrimitives/FormatSpec_u_01.fs

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)