Procházet zdrojové kódy

Добавьте файлы проекта.

22@ngknn.local před 2 roky
rodič
revize
299dde513b

+ 136 - 0
Calculation.cs

@@ -0,0 +1,136 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WSUniversalLib
+
+{
+    public class Calculation
+    {
+        public int GetPriorityForAgent(int agentType, float age, float experience)
+        {
+            int priorityGeneral;
+            float priority;
+            float agentk;
+            if (age<=25&&experience<=3)
+            {
+                switch(agentType)
+                {
+                    case 1:
+                        {
+                            priority = (float)(experience * 1.9);
+                            priorityGeneral = (int)Math.Round(priority);
+                            return priorityGeneral;
+                            
+                        }
+                    case 2:
+                        {
+                            priority = (float)(experience * 3.37);
+                            priorityGeneral = (int)Math.Round(priority);
+                            return priorityGeneral;
+                        }
+                    case 3:
+                        {
+                            priority = (float)(experience * 4.36);
+                            priorityGeneral = (int)Math.Round(priority);
+                            return priorityGeneral;
+                        }
+                    default:
+                        {
+                            return -1;
+                        }
+                }
+            }
+            else
+            { 
+                switch (agentType)
+                {
+                    case 1:
+                        {
+                            
+                            if (experience > 10 && experience <= 20)
+                            {
+                                agentk = (float)2.3;
+                                priority = experience * agentk;
+                                priorityGeneral = (int)Math.Round(priority);
+                                return priorityGeneral;
+                            }
+                            else if (experience > 20 && experience < 40) 
+                            {
+                                agentk = (float)2.5;
+                                priority = experience * agentk;
+                                priorityGeneral = (int)Math.Round(priority);
+                                return priorityGeneral;
+                            }
+                            else if (experience >= 40) 
+                            { 
+                                agentk = (float)2.7;
+                                priority = experience * agentk;
+                                priorityGeneral = (int)Math.Round(priority);
+                                return priorityGeneral;
+                            }
+                            break;
+                        }
+                    case 2:
+                        {
+                            if (experience > 10 && experience <= 20)
+                            {
+                                agentk = (float)3.7;
+                                priority = experience * agentk;
+                                priorityGeneral = (int)Math.Round(priority);
+                                return priorityGeneral;
+                            }
+                            else if (experience > 20 && experience < 40)
+                            {
+                                agentk = (float)3.9;
+                                priority = experience * agentk;
+                                priorityGeneral = (int)Math.Round(priority);
+                                return priorityGeneral;
+                            }
+                            else if (experience >= 40)
+                            {
+                                agentk = (float)4.1;
+                                priority = experience * agentk;
+                                priorityGeneral = (int)Math.Round(priority);
+                                return priorityGeneral;
+                            }
+                            break;
+                        }
+                    case 3:
+                        {
+                            if (experience > 10 && experience <= 20)
+                            {
+                                agentk = (float)4.6;
+                                priority = experience * agentk;
+                                priorityGeneral = (int)Math.Round(priority);
+                                return priorityGeneral;
+                            }
+                            else if (experience > 20 && experience < 40)
+                            {
+                                agentk = (float)4.8;
+                                priority = experience * agentk;
+                                priorityGeneral = (int)Math.Round(priority);
+                                return priorityGeneral;
+                            }
+                            else if (experience >= 40)
+                            {
+                                agentk = (float)5;
+                                priority = experience * agentk;
+                                priorityGeneral = (int)Math.Round(priority);
+                                return priorityGeneral;
+                            }
+                            break;
+                        }
+                    default:
+                        {
+                            return -1;
+                        }
+                }
+                return -1;
+            }
+            
+        }
+    }
+}

+ 36 - 0
Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Общие сведения об этой сборке предоставляются следующим набором
+// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
+// связанные со сборкой.
+[assembly: AssemblyTitle("WSUniversalLib.dl")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("WSUniversalLib.dl")]
+[assembly: AssemblyCopyright("Copyright ©  2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
+// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
+// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
+[assembly: ComVisible(false)]
+
+// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
+[assembly: Guid("58eae481-a642-4ed4-8252-7a6f111da9d8")]
+
+// Сведения о версии сборки состоят из указанных ниже четырех значений:
+//
+//      Основной номер версии
+//      Дополнительный номер версии
+//      Номер сборки
+//      Редакция
+//
+// Можно задать все значения или принять номера сборки и редакции по умолчанию 
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 176 - 0
UnitTestCalculation/CalculationTest.cs

@@ -0,0 +1,176 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using WSUniversalLib;
+
+namespace UnitTestCalculation
+{
+    [TestClass]
+    public class CalculationTest
+    {
+        [TestMethod]
+        public void Check_AgentTypeNonExist()
+        {
+            int rezult = -1;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(4, 32, 14);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_YongAgentTypeNonExist()
+        {
+            int rezult = -1;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(4, 21, 1);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_YongAgnetType1EasyTest()
+        {
+            int rezult = 4;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(1, 23, 2);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_YongAgnetType2EasyTest()
+        {
+            int rezult = 7;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(2, 23, 2);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_YongAgnetType3EasyTest()
+        {
+            int rezult = 9;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(3, 23, 2);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_AgentType1Exp12EasyTest()
+        {
+            int rezult = 28;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(1, 32, 12);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_AgentType2Exp21EasyTest()
+        {
+            int rezult = 82;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(2, 35, 21);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_AgentType3Exp40EasyTest()
+        {
+            int rezult = 200;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(3, 55, 40);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_AgentType1Exp45EasyTest()
+        {
+            int rezult = 122;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(1, 55, 45);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_AgentType2Exp16EasyTest()
+        {
+            int rezult = 59;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(2, 35, 16);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_YongAgnetType1HardTest()
+        {
+            int rezult = 3;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(1, (float)21.5, (float) 1.5);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_YongAgnetType3HardTest()
+        {
+            int rezult = 11;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(3, (float)21.5, (float)2.5);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_AgnetType1HardTest()
+        {
+            int rezult = 29;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(1, (float)33.7, (float)12.7);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_AgnetType2HardTest()
+        {
+            int rezult = 106;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(2, (float)45.7, (float)27.2);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+        [TestMethod]
+        public void Check_AgnetType3HardTest()
+        {
+            int rezult = 213;
+
+            Calculation calc = new Calculation();
+            int actual = calc.GetPriorityForAgent(3, (float)55.9, (float)42.6);
+
+            Assert.AreEqual(rezult, actual);
+        }
+
+    }
+}

+ 20 - 0
UnitTestCalculation/Properties/AssemblyInfo.cs

@@ -0,0 +1,20 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("UnitTestCalculation")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("UnitTestCalculation")]
+[assembly: AssemblyCopyright("Copyright ©  2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+[assembly: ComVisible(false)]
+
+[assembly: Guid("9adc291f-2a6f-450a-8ffd-bb45a8559483")]
+
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 74 - 0
UnitTestCalculation/UnitTestCalculation.csproj

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props')" />
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{9ADC291F-2A6F-450A-8FFD-BB45A8559483}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>UnitTestCalculation</RootNamespace>
+    <AssemblyName>UnitTestCalculation</AssemblyName>
+    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
+    <IsCodedUITest>False</IsCodedUITest>
+    <TestProjectType>UnitTest</TestProjectType>
+    <NuGetPackageImportStamp>
+    </NuGetPackageImportStamp>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\MSTest.TestFramework.2.1.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\MSTest.TestFramework.2.1.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="CalculationTest.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\WSUniversalLib.csproj">
+      <Project>{58eae481-a642-4ed4-8252-7a6f111da9d8}</Project>
+      <Name>WSUniversalLib</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их.  Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets'))" />
+  </Target>
+  <Import Project="..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets')" />
+</Project>

+ 5 - 0
UnitTestCalculation/packages.config

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="MSTest.TestAdapter" version="2.1.1" targetFramework="net472" />
+  <package id="MSTest.TestFramework" version="2.1.1" targetFramework="net472" />
+</packages>

+ 48 - 0
WSUniversalLib.csproj

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{58EAE481-A642-4ED4-8252-7A6F111DA9D8}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>WSUniversalLib.dl</RootNamespace>
+    <AssemblyName>WSUniversalLib.dl</AssemblyName>
+    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Calculation.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>

+ 31 - 0
WSUniversalLib.sln

@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30804.86
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WSUniversalLib", "WSUniversalLib.csproj", "{58EAE481-A642-4ED4-8252-7A6F111DA9D8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTestCalculation", "UnitTestCalculation\UnitTestCalculation.csproj", "{9ADC291F-2A6F-450A-8FFD-BB45A8559483}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{58EAE481-A642-4ED4-8252-7A6F111DA9D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{58EAE481-A642-4ED4-8252-7A6F111DA9D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{58EAE481-A642-4ED4-8252-7A6F111DA9D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{58EAE481-A642-4ED4-8252-7A6F111DA9D8}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9ADC291F-2A6F-450A-8FFD-BB45A8559483}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9ADC291F-2A6F-450A-8FFD-BB45A8559483}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9ADC291F-2A6F-450A-8FFD-BB45A8559483}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9ADC291F-2A6F-450A-8FFD-BB45A8559483}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {886CCC79-D331-42D9-8204-1783CAFB17FF}
+	EndGlobalSection
+EndGlobal