From 5f4864e2028bad87e831aa59a39214ea273ec12a Mon Sep 17 00:00:00 2001 From: MikePuzanov Date: Thu, 14 Apr 2022 15:17:03 +0300 Subject: [PATCH] test --- Test/Test.Test/MinInListTest.fs | 16 ++++++++++++++++ Test/Test.Test/Test.Test.fsproj | 27 +++++++++++++++++++++++++++ Test/Test.Test/TreeTest.fs | 19 +++++++++++++++++++ Test/Test.sln | 22 ++++++++++++++++++++++ Test/Test/HashTable.fs | 11 +++++++++++ Test/Test/MinInList.fs | 5 +++++ Test/Test/Program.fs | 10 ++++++++++ Test/Test/Test.fsproj | 16 ++++++++++++++++ Test/Test/Tree.fs | 18 ++++++++++++++++++ 9 files changed, 144 insertions(+) create mode 100644 Test/Test.Test/MinInListTest.fs create mode 100644 Test/Test.Test/Test.Test.fsproj create mode 100644 Test/Test.Test/TreeTest.fs create mode 100644 Test/Test.sln create mode 100644 Test/Test/HashTable.fs create mode 100644 Test/Test/MinInList.fs create mode 100644 Test/Test/Program.fs create mode 100644 Test/Test/Test.fsproj create mode 100644 Test/Test/Tree.fs diff --git a/Test/Test.Test/MinInListTest.fs b/Test/Test.Test/MinInListTest.fs new file mode 100644 index 0000000..d13ee29 --- /dev/null +++ b/Test/Test.Test/MinInListTest.fs @@ -0,0 +1,16 @@ +module Test.Test.MinInLisTest + +open NUnit.Framework +open FsUnit +open Test.MinInList + + +[] +let minInListTest () = + let value = minInList [5; 2; 4; 5; 7; 3; 6; 2] + let value2 = minInList [5; 2; 4; 2; 7; 3; 6; 2] + let value3 = minInList [5; -2; 4; 5; 7; 3; 6; 2] + + value |> should equal 2 + value2 |> should equal 2 + value3 |> should equal -2 \ No newline at end of file diff --git a/Test/Test.Test/Test.Test.fsproj b/Test/Test.Test/Test.Test.fsproj new file mode 100644 index 0000000..c61caa7 --- /dev/null +++ b/Test/Test.Test/Test.Test.fsproj @@ -0,0 +1,27 @@ + + + + net6.0 + + false + false + + + + + + + + + + + + + + + + + + + + diff --git a/Test/Test.Test/TreeTest.fs b/Test/Test.Test/TreeTest.fs new file mode 100644 index 0000000..a52e342 --- /dev/null +++ b/Test/Test.Test/TreeTest.fs @@ -0,0 +1,19 @@ +module Test.Test.MinInListTest + +open NUnit.Framework +open FsUnit +open Test.Tree + +[] +let funcToTreeTest () = + let tree1 = Tree(3, Tip(4), Tip(61)) + let tree2 = Tree(3, Tip(1), Tip(61)) + let tree3 = Tree(2, Tip(4), Tip(61)) + + let list1 = funcToTree tree1 (fun x -> x % 2 = 0) + let list2 = funcToTree tree2 (fun x -> x % 2 = 0) + let list3 = funcToTree tree3 (fun x -> x % 2 = 0) + + list1 |> should equal [4] + list2 |> should be Empty + list3 |> should equal [2; 4] \ No newline at end of file diff --git a/Test/Test.sln b/Test/Test.sln new file mode 100644 index 0000000..b337941 --- /dev/null +++ b/Test/Test.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Test", "Test\Test.fsproj", "{63F86023-3284-4778-9ABD-566A7DF41900}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Test.Test", "Test.Test\Test.Test.fsproj", "{B97C4599-9B6E-4E69-A457-E39934D08F63}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {63F86023-3284-4778-9ABD-566A7DF41900}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63F86023-3284-4778-9ABD-566A7DF41900}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63F86023-3284-4778-9ABD-566A7DF41900}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63F86023-3284-4778-9ABD-566A7DF41900}.Release|Any CPU.Build.0 = Release|Any CPU + {B97C4599-9B6E-4E69-A457-E39934D08F63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B97C4599-9B6E-4E69-A457-E39934D08F63}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B97C4599-9B6E-4E69-A457-E39934D08F63}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B97C4599-9B6E-4E69-A457-E39934D08F63}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/Test/Test/HashTable.fs b/Test/Test/HashTable.fs new file mode 100644 index 0000000..7dc3e14 --- /dev/null +++ b/Test/Test/HashTable.fs @@ -0,0 +1,11 @@ +module Test.HashTable + +open System +open Test + +type public MyHashTable (func : Func) = + let func element = func + let hash (element : string) = element |> func + + + \ No newline at end of file diff --git a/Test/Test/MinInList.fs b/Test/Test/MinInList.fs new file mode 100644 index 0000000..3bf2af4 --- /dev/null +++ b/Test/Test/MinInList.fs @@ -0,0 +1,5 @@ +module Test.MinInList + +// находит минимальный элемент списка +let minInList list = + (list |> List.map (fun x -> x * -1) |> List.max ) * -1 \ No newline at end of file diff --git a/Test/Test/Program.fs b/Test/Test/Program.fs new file mode 100644 index 0000000..ed35313 --- /dev/null +++ b/Test/Test/Program.fs @@ -0,0 +1,10 @@ +module Program + +open Test.Tree + + +let tree = Tree(2, Tip(4), Tree(3, Tree(6, Tip(5), Tip(8)), Tip(1))) + +let newTree = funcToTree tree (fun x -> x % 2 = 0) + +printf $"{funcToTree tree (fun x -> x % 2 = 0)}" \ No newline at end of file diff --git a/Test/Test/Test.fsproj b/Test/Test/Test.fsproj new file mode 100644 index 0000000..e617658 --- /dev/null +++ b/Test/Test/Test.fsproj @@ -0,0 +1,16 @@ + + + + Exe + net6.0 + Windows + + + + + + + + + + diff --git a/Test/Test/Tree.fs b/Test/Test/Tree.fs new file mode 100644 index 0000000..d6cdc42 --- /dev/null +++ b/Test/Test/Tree.fs @@ -0,0 +1,18 @@ +module Test.Tree + +type Tree<'a> = +| Tree of 'a * Tree<'a> * Tree<'a> +| Tip of 'a + +// функция, которая применяет функцию к каждому элементу дерева +let funcToTree tree func = + let check value func list = + if func value then value :: list else + list + let rec findElement tree func list = + match tree with + | Tip value -> check value func list + | Tree (value, left, right) -> + + (check value func list) @ findElement left func [] @ findElement right func [] + findElement tree func [] \ No newline at end of file