Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moved fsharpqa/Libraries/Core/LanguagePrimitives test cases to NUnit #9396

Merged
merged 7 commits into from
Jun 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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

[<TestFixture>]
module ``Cast to Units Tests`` =

[<Test>]
let ``Casting to Measures should compile``() =
CompilerAssert.Pass
"""
module M

open Microsoft.FSharp.Core.LanguagePrimitives

[<Measure>]
type M

let r1 = SByteWithMeasure<M> 1y + 2y<M>
let r2 = Int16WithMeasure<M> 2s - 2s<M>
let r3 = Int32WithMeasure<M> 3 * 3<M>
let r4 = Int64WithMeasure<M> 5L / 5L<M>
let r5 = FloatWithMeasure<M> 11.11 + 1.1<M>
let r6 = Float32WithMeasure<M> 22.22f - 11.11f<M>
let r7 = DecimalWithMeasure<M> 33.33M * 44.44M<M>
"""
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.

namespace FSharp.Compiler.UnitTests

open NUnit.Framework

[<TestFixture>]
module ``Comparison Tests`` =

type 'a www = W of 'a

[<Test>]
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.

namespace FSharp.Compiler.UnitTests

open NUnit.Framework

[<TestFixture>]
module ``String Format Tests`` =

[<Test>]
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"
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"

[<Test>]
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"
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"

[<Test>]
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"
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")

[<Test>]
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"
3 changes: 3 additions & 0 deletions tests/fsharp/FSharpSuite.Tests.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@
<Compile Include="Compiler\Stress\LargeExprTests.fs" />
<Compile Include="Compiler\Regressions\IndexerRegressionTests.fs" />
<Compile Include="Compiler\Regressions\ForInDoMutableRegressionTest.fs" />
<Compile Include="Compiler\Libraries\Core\LanguagePrimitives\CastToUnitsTests.fs" />
<Compile Include="Compiler\Libraries\Core\LanguagePrimitives\ComparisonTests.fs" />
<Compile Include="Compiler\Libraries\Core\LanguagePrimitives\StringFormatTests.fs" />
<Compile Include="Compiler\Libraries\Core\Collections\IEnumerableTests.fs" />
<Compile Include="Compiler\Libraries\Core\Collections\MapTests.fs" />
<Compile Include="Compiler\Libraries\Core\Collections\CollectionTests.fs" />
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading