Елизавета Голубева 2 年之前
父节点
当前提交
cd85642a0a
共有 6 个文件被更改,包括 241 次插入7 次删除
  1. 20 0
      UnitTest/Properties/AssemblyInfo.cs
  2. 74 0
      UnitTest/UnitTest.csproj
  3. 128 0
      UnitTest/UnitTest1.cs
  4. 5 0
      UnitTest/packages.config
  5. 6 0
      WSUniversalLib.sln
  6. 8 7
      WSUniversalLib/Calculation.cs

+ 20 - 0
UnitTest/Properties/AssemblyInfo.cs

@@ -0,0 +1,20 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("UnitTest")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("UnitTest")]
+[assembly: AssemblyCopyright("Copyright ©  2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+[assembly: ComVisible(false)]
+
+[assembly: Guid("ab355a68-cee7-4881-a964-6acdc682bc81")]
+
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 74 - 0
UnitTest/UnitTest.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>{AB355A68-CEE7-4881-A964-6ACDC682BC81}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>UnitTest</RootNamespace>
+    <AssemblyName>UnitTest</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="UnitTest1.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\WSUniversalLib\WSUniversalLib.csproj">
+      <Project>{f7e870b9-10ee-4630-b0f8-af7ce5c7e02d}</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>

+ 128 - 0
UnitTest/UnitTest1.cs

@@ -0,0 +1,128 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using WSUniversalLib;
+
+namespace UnitTest
+{
+    [TestClass]
+    public class UnitTest1
+    {
+        Calculation calculation = new Calculation();
+        [TestMethod]
+        public void GetQuantityForProduct_DateExample()
+        {
+            int ex = 5;
+            int ans = calculation.GetPriorityForAgent(2, 23, (float)1.5);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_ExperienceMoreAge()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(2, 23, 30);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_OldSpecialistWithLittleExperience()
+        {
+            int ex = 3;
+            int ans = calculation.GetPriorityForAgent(1, 40, (float)1.5);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_YungSpecialist()
+        {
+            int ex = 3;
+            int ans = calculation.GetPriorityForAgent(1, 23, (float)1.5);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct__NonExistentAgentType()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(9, 23, (float)1.5);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct__NonExistentAge()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(1, -2, (float)1.5);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct__NonExistentExperience()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(1, 23, -2);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_IsNotNullRezult()
+        {
+            Assert.IsNotNull(calculation.GetPriorityForAgent(2, 23, (float)1.5));
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_IntRezult()
+        {
+            Assert.IsInstanceOfType(calculation.GetPriorityForAgent(2, 23, (float)1.5), typeof(int));
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_NullExperience()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(Convert.ToInt32(null), 23, -2);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_NullAge()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(1, Convert.ToInt32(null), -2);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_NullAgentTypet()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(1, 23, Convert.ToInt32(null));
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_BigExperience()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(900000000, 23, -2);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_BigAge()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(1, 9000000000000000000, -2);
+            Assert.AreEqual(ex, ans);
+        }
+
+        [TestMethod]
+        public void GetQuantityForProduct_BiggentTypet()
+        {
+            int ex = -1;
+            int ans = calculation.GetPriorityForAgent(1, 23, 9000000000000000000);
+            Assert.AreEqual(ex, ans);
+        }
+
+    }
+}

+ 5 - 0
UnitTest/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>

+ 6 - 0
WSUniversalLib.sln

@@ -5,6 +5,8 @@ VisualStudioVersion = 16.0.30907.101
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WSUniversalLib", "WSUniversalLib\WSUniversalLib.csproj", "{F7E870B9-10EE-4630-B0F8-AF7CE5C7E02D}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTest", "UnitTest\UnitTest.csproj", "{AB355A68-CEE7-4881-A964-6ACDC682BC81}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -15,6 +17,10 @@ Global
 		{F7E870B9-10EE-4630-B0F8-AF7CE5C7E02D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{F7E870B9-10EE-4630-B0F8-AF7CE5C7E02D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{F7E870B9-10EE-4630-B0F8-AF7CE5C7E02D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{AB355A68-CEE7-4881-A964-6ACDC682BC81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{AB355A68-CEE7-4881-A964-6ACDC682BC81}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{AB355A68-CEE7-4881-A964-6ACDC682BC81}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AB355A68-CEE7-4881-A964-6ACDC682BC81}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 8 - 7
WSUniversalLib/Calculation.cs

@@ -18,27 +18,28 @@ namespace WSUniversalLib
         public int GetPriorityForAgent(int agentType, float age, float experience)
         {
             double proc;
-            if(agentType == 1 && age < 26 && experience < 4)
+
+            if(agentType == 1 && age < 26 && experience < 4 && age > 0 && experience > 0)
             {
                 proc = 1.8 + 0.1;
             }
-            else if(agentType == 2 && age < 26 && experience < 4)
+            else if(agentType == 2 && age < 26 && experience < 4 && age > 0 && experience > 0)
             {
                 proc = 3.2 + 0.17;
             }
-            else if (agentType == 3 && age < 26 && experience < 4)
+            else if (agentType == 3 && age < 26 && experience < 4 && age > 0 && experience > 0)
             {
                 proc = 4.1 + 0.26;
             }
-            else if (agentType == 1 && age > 26 && experience > 4)
+            else if (agentType == 1 && (age > 26 || experience > 4))
             {
                 proc = 1.8;
             }
-            else if (agentType == 2 && age > 26 && experience > 4)
+            else if (agentType == 2 && (age > 26 || experience > 4))
             {
                 proc = 3.2;
             }
-            else if (agentType == 3 && age > 26 && experience > 4)
+            else if (agentType == 3 && (age > 26 || experience > 4))
             {
                 proc = 4.1;
             }
@@ -61,7 +62,7 @@ namespace WSUniversalLib
                 proc += 0.9;
             }
 
-            int rezult = Convert.ToInt32(Math.Ceiling(experience * proc));
+            int rezult = Convert.ToInt32(Math.Round(experience * proc));
             return rezult;
         }