From af4b3a9c1e87a1585b2f78cde0d39991a38550d9 Mon Sep 17 00:00:00 2001 From: vologin-dmitry Date: Sat, 6 Jun 2020 17:28:51 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- semester4/TestAttempt4/QueueTests/Program.fs | 1 + .../TestAttempt4/QueueTests/QueueTests.fsproj | 25 +++++++++++++++ .../TestAttempt4/QueueTests/UnitTest1.fs | 29 +++++++++++++++++ semester4/TestAttempt4/TestAttempt.sln | 31 +++++++++++++++++++ semester4/TestAttempt4/TestAttempt/Program.fs | 8 +++++ semester4/TestAttempt4/TestAttempt/Queue.fs | 24 ++++++++++++++ .../TestAttempt/TestAttempt.fsproj | 17 ++++++++++ 7 files changed, 135 insertions(+) create mode 100644 semester4/TestAttempt4/QueueTests/Program.fs create mode 100644 semester4/TestAttempt4/QueueTests/QueueTests.fsproj create mode 100644 semester4/TestAttempt4/QueueTests/UnitTest1.fs create mode 100644 semester4/TestAttempt4/TestAttempt.sln create mode 100644 semester4/TestAttempt4/TestAttempt/Program.fs create mode 100644 semester4/TestAttempt4/TestAttempt/Queue.fs create mode 100644 semester4/TestAttempt4/TestAttempt/TestAttempt.fsproj diff --git a/semester4/TestAttempt4/QueueTests/Program.fs b/semester4/TestAttempt4/QueueTests/Program.fs new file mode 100644 index 0000000..0695f84 --- /dev/null +++ b/semester4/TestAttempt4/QueueTests/Program.fs @@ -0,0 +1 @@ +module Program = let [] main _ = 0 diff --git a/semester4/TestAttempt4/QueueTests/QueueTests.fsproj b/semester4/TestAttempt4/QueueTests/QueueTests.fsproj new file mode 100644 index 0000000..ed35723 --- /dev/null +++ b/semester4/TestAttempt4/QueueTests/QueueTests.fsproj @@ -0,0 +1,25 @@ + + + + netcoreapp3.1 + + false + false + + + + + + + + + + + + + + + + + + diff --git a/semester4/TestAttempt4/QueueTests/UnitTest1.fs b/semester4/TestAttempt4/QueueTests/UnitTest1.fs new file mode 100644 index 0000000..818f22f --- /dev/null +++ b/semester4/TestAttempt4/QueueTests/UnitTest1.fs @@ -0,0 +1,29 @@ +module ThirdTimeTests + +open NUnit.Framework +open Queue +open FsUnit + +let mutable queue = new Queue() + +[] +let Setup () = queue <- new Queue() + +[] +let EmptyTest () = + Assert.True(queue.IsEmpty) + +[] +let OneElementTest () = + queue.Enqueue "hello" + Assert.False(queue.IsEmpty) + +[] +let SimpleTest() = + queue.Enqueue "1" + queue.Enqueue "2" + Assert.AreEqual("1", queue.Dequeue()) + Assert.AreEqual("2", queue.Dequeue()) + +[] +let ExceptionTest () = Assert.Throws((fun () -> queue.Dequeue() |>ignore)) |> ignore \ No newline at end of file diff --git a/semester4/TestAttempt4/TestAttempt.sln b/semester4/TestAttempt4/TestAttempt.sln new file mode 100644 index 0000000..ebe25fe --- /dev/null +++ b/semester4/TestAttempt4/TestAttempt.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29926.136 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "TestAttempt", "TestAttempt\TestAttempt.fsproj", "{C613B135-69E3-42CC-BD94-E13A5715ECD8}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "QueueTests", "QueueTests\QueueTests.fsproj", "{B8C0D5E7-9DA4-453F-AA60-9EDB6F779CC9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C613B135-69E3-42CC-BD94-E13A5715ECD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C613B135-69E3-42CC-BD94-E13A5715ECD8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C613B135-69E3-42CC-BD94-E13A5715ECD8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C613B135-69E3-42CC-BD94-E13A5715ECD8}.Release|Any CPU.Build.0 = Release|Any CPU + {B8C0D5E7-9DA4-453F-AA60-9EDB6F779CC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8C0D5E7-9DA4-453F-AA60-9EDB6F779CC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8C0D5E7-9DA4-453F-AA60-9EDB6F779CC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8C0D5E7-9DA4-453F-AA60-9EDB6F779CC9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AA23B06E-C86F-4BBC-A63E-374C252C6C87} + EndGlobalSection +EndGlobal diff --git a/semester4/TestAttempt4/TestAttempt/Program.fs b/semester4/TestAttempt4/TestAttempt/Program.fs new file mode 100644 index 0000000..a7458f5 --- /dev/null +++ b/semester4/TestAttempt4/TestAttempt/Program.fs @@ -0,0 +1,8 @@ +// Learn more about F# at http://fsharp.org + +open System + +[] +let main argv = + printfn "Hello World from F#!" + 0 // return an integer exit code diff --git a/semester4/TestAttempt4/TestAttempt/Queue.fs b/semester4/TestAttempt4/TestAttempt/Queue.fs new file mode 100644 index 0000000..8b36da9 --- /dev/null +++ b/semester4/TestAttempt4/TestAttempt/Queue.fs @@ -0,0 +1,24 @@ +module Queue + +///Простая очередь +type Queue<'a>() = + let mutable list = [] + + ///Добавить в элемент + member this.Enqueue (value : 'a) = + let reversed = List.rev list + list <- List.rev (value :: reversed) + + ///Получить первый в очереди элемент + member this.Dequeue() = + match list.Length with + | 0 -> raise (System.IndexOutOfRangeException("Queue is empty!")) + | _ -> let head = list.Head + list <- list.Tail + head + + ///Узнать количество элементов в очереди + member this.Length() = list.Length + + ///Узнать является ли очередь пустой + member this.IsEmpty = list.IsEmpty \ No newline at end of file diff --git a/semester4/TestAttempt4/TestAttempt/TestAttempt.fsproj b/semester4/TestAttempt4/TestAttempt/TestAttempt.fsproj new file mode 100644 index 0000000..4f67178 --- /dev/null +++ b/semester4/TestAttempt4/TestAttempt/TestAttempt.fsproj @@ -0,0 +1,17 @@ + + + + Exe + netcoreapp3.1 + + + + + + + + + + + + From e71e630c04400bf2b06e850620b512f2e2faac24 Mon Sep 17 00:00:00 2001 From: vologin-dmitry Date: Sat, 6 Jun 2020 17:31:26 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=83=D0=BC=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- appveyor.yml | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 74941b9..21c75a2 100644 --- a/.gitignore +++ b/.gitignore @@ -333,4 +333,5 @@ ASALocalRun/ #This is mine and this is now .bin/ .obj/ -.Properties/ \ No newline at end of file +.Properties/ +/semester4/SecondHomework \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 855f34f..8f8ac67 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,7 +1,7 @@ -image: Visual Studio 2017 +image: Visual Studio 2019 before_build: - - nuget restore semester2/6.1/HW6T2.sln + - nuget restore semester4/TestAttempt4/TestAttempt.sln build: - project: semester2/2.3/2.3.sln + project: semester4/TestAttempt4/TestAttempt.sln