Selaa lähdekoodia

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

КудряшовДА 9 kuukautta sitten
vanhempi
commit
314c654149

+ 20 - 0
UnitTests/Properties/AssemblyInfo.cs

@@ -0,0 +1,20 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("UnitTests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("UnitTests")]
+[assembly: AssemblyCopyright("Copyright ©  2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+[assembly: ComVisible(false)]
+
+[assembly: Guid("03f7a4e8-d8d0-4cd0-adc8-a9a9b8c51847")]
+
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 82 - 0
UnitTests/UnitTest1.cs

@@ -0,0 +1,82 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using WSUniversalLib;
+
+namespace UnitTests
+{
+    /// <summary>
+    /// Блок простых тестов
+    /// </summary>
+    [TestClass]
+    public class SimpleTests
+    {
+
+        // Поверка выхода за границу типа продукта
+        [TestMethod]
+        public void GetQuantityForProductNotEqualsProductType()
+        {
+            Assert.AreNotEqual(1, WSUniversalLib.Calculation.GetQuantityForProduct(4, 1, 2, 24, 52));
+        }
+        // Поверка выхода за границу типа материала
+        [TestMethod]
+        public void GetQuantityForProductNotEqualsMaterialType()
+        {
+            Assert.AreNotEqual(1, WSUniversalLib.Calculation.GetQuantityForProduct(2, 0, 2, 24, 52));
+        }
+        // Поверка выхода за границу количества сырья
+        [TestMethod]
+        public void GetQuantityForProductNotEqualsCount()
+        {
+            Assert.AreNotEqual(1, WSUniversalLib.Calculation.GetQuantityForProduct(2, 2, 0, 24, 52));
+        }
+        // Поверка подсчёта при верном типе продукта
+        [TestMethod]
+        public void GetQuantityForProductEqualsProductType()
+        {
+            Assert.AreEqual(28, WSUniversalLib.Calculation.GetQuantityForProduct(1, 1, 1, 5, 5));
+        }
+        // Поверка подсчёта при верном типе материала
+        [TestMethod]
+        public void GetQuantityForProductEqualsMaterialType()
+        {
+            Assert.AreEqual(28, WSUniversalLib.Calculation.GetQuantityForProduct(1, 2, 1, 5, 5));
+        }
+        // Поверка подсчёта при верном количестве сырья
+        [TestMethod]
+        public void GetQuantityForProductEqualsCountType()
+        {
+            Assert.AreEqual(55, WSUniversalLib.Calculation.GetQuantityForProduct(1, 2, 2, 5, 5));
+        }
+        // Поверка выхода за границу ширины
+        [TestMethod]
+        public void GetQuantityForProductNotEqualsWidth()
+        {
+            Assert.AreNotEqual(1, WSUniversalLib.Calculation.GetQuantityForProduct(1, 2, 2, 0, 5));
+        }
+        // Поверка выхода за границу количества длины
+        [TestMethod]
+        public void GetQuantityForProductNotEqualsLenth()
+        {
+            Assert.AreNotEqual(1, WSUniversalLib.Calculation.GetQuantityForProduct(1, 2, 2, 5, 0));
+        }
+        // Поверка подсчёта при верной ширине
+        [TestMethod]
+        public void GetQuantityForProductEqualsWidth()
+        {
+            Assert.AreEqual(18, WSUniversalLib.Calculation.GetQuantityForProduct(1, 2, 1, 4, 4));
+        }
+        // Поверка подсчёта при верной длине
+        [TestMethod]
+        public void GetQuantityForProductEqualsLenth()
+        {
+            Assert.AreEqual(10, WSUniversalLib.Calculation.GetQuantityForProduct(1, 1, 1, 3, 3));
+        }
+    }
+
+    /// <summary>
+    /// Блок сложных тестов
+    /// </summary>
+    public class HardTests
+    {
+    }
+}

+ 74 - 0
UnitTests/UnitTests.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.2.7\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.2.7\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>{03F7A4E8-D8D0-4CD0-ADC8-A9A9B8C51847}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>UnitTests</RootNamespace>
+    <AssemblyName>UnitTests</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.2.7\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.2.7\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>{f02caf9a-4ad2-413b-8191-8d498001b24d}</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.2.7\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.2.7\build\net45\MSTest.TestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.2.7\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.2.7\build\net45\MSTest.TestAdapter.targets'))" />
+  </Target>
+  <Import Project="..\packages\MSTest.TestAdapter.2.2.7\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.2.7\build\net45\MSTest.TestAdapter.targets')" />
+</Project>

+ 5 - 0
UnitTests/packages.config

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

+ 31 - 0
WSUniversalLib.sln

@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.4.33110.190
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WSUniversalLib", "WSUniversalLib\WSUniversalLib.csproj", "{F02CAF9A-4AD2-413B-8191-8D498001B24D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "UnitTests\UnitTests.csproj", "{03F7A4E8-D8D0-4CD0-ADC8-A9A9B8C51847}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{F02CAF9A-4AD2-413B-8191-8D498001B24D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F02CAF9A-4AD2-413B-8191-8D498001B24D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F02CAF9A-4AD2-413B-8191-8D498001B24D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F02CAF9A-4AD2-413B-8191-8D498001B24D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{03F7A4E8-D8D0-4CD0-ADC8-A9A9B8C51847}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{03F7A4E8-D8D0-4CD0-ADC8-A9A9B8C51847}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{03F7A4E8-D8D0-4CD0-ADC8-A9A9B8C51847}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{03F7A4E8-D8D0-4CD0-ADC8-A9A9B8C51847}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {71F1E065-B11F-4098-86A4-17AABED4DB13}
+	EndGlobalSection
+EndGlobal

+ 68 - 0
WSUniversalLib/Calculation.cs

@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WSUniversalLib
+{
+    public class Calculation
+    {
+        /// <summary>
+        /// Метод подсчёта чистой продукции
+        /// </summary>
+        /// <param name="productType">Тип продукции</param>
+        /// <param name="materialType">Тип материала</param>
+        /// <param name="count">Количество сырья</param>
+        /// <param name="width">Ширина сырья</param>
+        /// <param name="length">Длина сырья</param>
+        /// <returns></returns>
+       public static int GetQuantityForProduct(int productType, int materialType, int count, float width, float length)
+        {
+            int sum;
+            if(productType <= 3 || productType >= 1 && materialType == 1 || materialType == 2 && count > 0 && width > 0 && length > 0)
+            {
+                if(productType == 1)
+                {
+                    sum = Convert.ToInt32(((width * length) * count) * 1.1);
+                    if(materialType == 1)
+                    {
+                        return Convert.ToInt32(sum + (sum * 0.003));
+                    }
+                    else
+                    {
+                        return Convert.ToInt32(sum + (sum * 0.0012));
+                    }
+                }
+                else if(productType == 2)
+                {
+                    sum = Convert.ToInt32(((width * length) * count) * 2.5);
+                    if (materialType == 1)
+                    {
+                        return Convert.ToInt32(sum + (sum * 0.003));
+                    }
+                    else
+                    {
+                        return Convert.ToInt32(sum + (sum * 0.0012));
+                    }
+                }
+                else
+                {
+                    sum = Convert.ToInt32(((width * length) * count) * 8.43);
+                    if (materialType == 1)
+                    {
+                        return Convert.ToInt32(sum + (sum * 0.003));
+                    }
+                    else
+                    {
+                        return Convert.ToInt32(sum + (sum * 0.0012));
+                    }
+                }
+            }
+            else
+            {
+                return -1;
+            }
+        }
+    }
+}

+ 36 - 0
WSUniversalLib/Properties/AssemblyInfo.cs

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

+ 48 - 0
WSUniversalLib/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>{F02CAF9A-4AD2-413B-8191-8D498001B24D}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>WSUniversalLib</RootNamespace>
+    <AssemblyName>WSUniversalLib</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>