forked from auduchinok/fsharp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVersionCompare.fs
More file actions
66 lines (59 loc) · 2.77 KB
/
VersionCompare.fs
File metadata and controls
66 lines (59 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
namespace FSharp.Compiler.UnitTests
open System
open System.Globalization
open System.Text
open NUnit.Framework
open FSharp.Compiler
[<TestFixture>]
module VersionCompare =
open FSharp.Compiler.DotNetFrameworkDependencies
[<TestCase("1.0.0", "1.0.1", ExpectedResult = -1)>] // 1.0.0 < 1.0.1
[<TestCase("1.0.0", "1.0.0", ExpectedResult = 0)>] // 1.0.0 = 1.0.0
[<TestCase("1.0.1", "1.0.0", ExpectedResult = 1)>] // 1.0.1 > 1.0.1
[<TestCase("0.0.9", "1.0.0-Suffix1", ExpectedResult = -1)>] // 0.0.9 < 1.0.0-Suffix1
[<TestCase("1.0.0", "1.0.0-Suffix1", ExpectedResult = 1)>] // 1.0.0 > 1.0.0-Suffix1
[<TestCase("1.0.0-Suffix1", "1.0.0", ExpectedResult = -1)>] // 1.0.0-Suffix1 < 1.0.0
[<TestCase("1.0.0-Suffix1", "1.0.0-Suffix2", ExpectedResult = -1)>] // 1.0.0-Suffix1 < 1.0.0-Suffix2
[<TestCase("1.0.0-Suffix2", "1.0.0-Suffix1", ExpectedResult = 1)>] // 1.0.0-Suffix2 > 1.0.0-Suffix1
[<TestCase("1.0.0-Suffix1", "1.0.0-Suffix1", ExpectedResult = 0)>] // 1.0.0-Suffix1 > 1.0.0-Suffix2
[<TestCase("1.0.1", "1.0.0-Suffix1", ExpectedResult = 1)>] // 1.0.1 > 1.0.0-Suffix1
[<TestCase("1.0.0-Suffix1", "1.0.1", ExpectedResult = -1)>] // 1.0.0-Suffix1 < 1.0.1
let VersionCompareTest (str1: string, str2: string) : int =
versionCompare str1 str2
[<Test>]
[<TestCase("", ExpectedResult = "3.0.0-preview4-27610-06")>]
let VersionCompareSortArrayHighestPreview _: string =
let versions = [|
"1.0.0-preview4-20000-01"
"3.0.0-preview4-27610-06"
"1.0.0-preview4-20000-02"
"3.0.0-preview4-27610-05"
"3.0.0-preview4-27609-10"
|]
versions |> Array.sortWith (versionCompare) |> Array.last
[<Test>]
[<TestCase("", ExpectedResult = "3.0.0")>]
let VersionCompareSortArrayHighestRelease _: string =
let versions = [|
"1.0.0-preview4-20000-01"
"3.0.0"
"3.0.0-preview4-27610-06"
"1.0.0-preview4-20000-02"
"3.0.0-preview4-27610-05"
"3.0.0-preview4-27609-10"
|]
versions |> Array.sortWith (versionCompare) |> Array.last
[<Test>]
[<TestCase("", ExpectedResult = "3.0.1")>]
let VersionCompareSortArrayEvenHighestRelease _: string =
let versions = [|
"3.0.1"
"1.0.0-preview4-20000-01"
"3.0.0"
"3.0.0-preview4-27610-06"
"1.0.0-preview4-20000-02"
"3.0.0-preview4-27610-05"
"3.0.0-preview4-27609-10"
|]
versions |> Array.sortWith (versionCompare) |> Array.last