diff --git a/appveyor.yml b/appveyor.yml index 855f34f..297b50f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,7 +1,17 @@ -image: Visual Studio 2017 +image: Visual Studio 2019 + +init: + - git config --global core.autocrlf true + +environment: + matrix: + - solution: Semester4/PointFree/PointFree.sln before_build: - - nuget restore semester2/6.1/HW6T2.sln + - nuget restore %solution% build: - project: semester2/2.3/2.3.sln + project: $(solution) + +test_script: + - dotnet test %solution% diff --git a/semester4/PointFree/PointFree.sln b/semester4/PointFree/PointFree.sln new file mode 100644 index 0000000..b898abd --- /dev/null +++ b/semester4/PointFree/PointFree.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "PointFree", "PointFree\PointFree.fsproj", "{6F6E5CF2-7DB2-4763-88F7-0F7308AB488F}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "PointFreeTests", "PointFreeTests\PointFreeTests.fsproj", "{98C11D07-A7FA-42DC-B8D9-196DAA909B55}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6F6E5CF2-7DB2-4763-88F7-0F7308AB488F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F6E5CF2-7DB2-4763-88F7-0F7308AB488F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F6E5CF2-7DB2-4763-88F7-0F7308AB488F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F6E5CF2-7DB2-4763-88F7-0F7308AB488F}.Release|Any CPU.Build.0 = Release|Any CPU + {98C11D07-A7FA-42DC-B8D9-196DAA909B55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {98C11D07-A7FA-42DC-B8D9-196DAA909B55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {98C11D07-A7FA-42DC-B8D9-196DAA909B55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98C11D07-A7FA-42DC-B8D9-196DAA909B55}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/semester4/PointFree/PointFree/PointFree.fs b/semester4/PointFree/PointFree/PointFree.fs new file mode 100644 index 0000000..73ff07c --- /dev/null +++ b/semester4/PointFree/PointFree/PointFree.fs @@ -0,0 +1,12 @@ +module PointFree + +///Takes list and number and multiplies every element of list to a number +let mapMultiply x l = List.map (fun y -> y * x) l + +let mapMultiply1 (x: int): int list -> int list = List.map (fun y -> y * x) + +let mapMultiply2 (x: int): int list -> int list = List.map (fun y -> (*) x y) + +let mapMultiply3 (x: int): int list -> int list = x |> (*) |> List.map + +let mapMultiply4: int -> int list -> int list = List.map << (*) \ No newline at end of file diff --git a/semester4/PointFree/PointFree/PointFree.fsproj b/semester4/PointFree/PointFree/PointFree.fsproj new file mode 100644 index 0000000..847a271 --- /dev/null +++ b/semester4/PointFree/PointFree/PointFree.fsproj @@ -0,0 +1,11 @@ + + + + netcoreapp3.1 + + + + + + + diff --git a/semester4/PointFree/PointFreeTests/PointFreeTest.fs b/semester4/PointFree/PointFreeTests/PointFreeTest.fs new file mode 100644 index 0000000..6dc1b9e --- /dev/null +++ b/semester4/PointFree/PointFreeTests/PointFreeTest.fs @@ -0,0 +1,22 @@ +module TestProject1 + +open NUnit.Framework +open FsCheck +open PointFree + +let ``example and first are equal`` number list = mapMultiply number list = mapMultiply1 number list +let ``first and second are equal`` number list = mapMultiply1 number list = mapMultiply2 number list +let ``second and third are equal`` number list = mapMultiply2 number list = mapMultiply3 number list +let ``third and fourth are equal`` number list = mapMultiply3 number list = mapMultiply4 number list + +[] +let test1 () = Check.QuickThrowOnFailure ``example and first are equal`` + +[] +let test2 () = Check.QuickThrowOnFailure ``first and second are equal`` + +[] +let test3 () = Check.QuickThrowOnFailure ``second and third are equal`` + +[] +let test4 () = Check.QuickThrowOnFailure ``third and fourth are equal`` \ No newline at end of file diff --git a/semester4/PointFree/PointFreeTests/PointFreeTests.fsproj b/semester4/PointFree/PointFreeTests/PointFreeTests.fsproj new file mode 100644 index 0000000..382e58f --- /dev/null +++ b/semester4/PointFree/PointFreeTests/PointFreeTests.fsproj @@ -0,0 +1,27 @@ + + + + netcoreapp3.1 + + false + false + TestProject1 + + + + + + + + + + + + + + + + + + + diff --git a/semester4/PointFree/PointFreeTests/Program.fs b/semester4/PointFree/PointFreeTests/Program.fs new file mode 100644 index 0000000..0695f84 --- /dev/null +++ b/semester4/PointFree/PointFreeTests/Program.fs @@ -0,0 +1 @@ +module Program = let [] main _ = 0