Евгений Колесников преди 2 години
родител
ревизия
129bedbe6f
променени са 2 файла, в които са добавени 59 реда и са изтрити 8 реда
  1. 56 0
      articles/testing_lab_de21.md
  2. 3 8
      readme.md

+ 56 - 0
articles/testing_lab_de21.md

@@ -0,0 +1,56 @@
+# Реализация тестов для прошлых чемпионатов (DE21)
+
+## Разработка библиотеки классов
+
+### Общие требования
+
+Для того чтобы в производстве могли быстро и одинаково рассчитывать количество необходимого сырья для производства той или иной продукции, необходимо разработать библиотеку классов.
+
+Данная библиотека будет подключаться к основному проекту и должна быть представлена в виде `.dll`.
+
+Чтобы система правильно интегрировалась вам необходимо обязательно следовать правилам именования библиотек, классов и методов в них. В случае ошибок в рамках именования ваша работа не может быть проверена и ваш результат не будет зачтен. Классы и методы должны содержать модификатор **public** (если это реализуемо в рамках платформы), чтобы внешние приложения могли получить к ним доступ.
+
+В качестве названия для библиотеки необходимо использовать: **WSUniversalLib**. Вам необходимо загрузить исходный код проекта с библиотекой в отдельный репозиторий с названием, совпадающим с названием проекта.
+
+### Класс расчета материалов
+
+Метод должен рассчитывать целое количество сырья, необходимого для производства определенного количества (*count*) продукции, учитывая возможный брак материалов. Для упрощения расчетов будем считать всю продукцию прямоугольного размера с известными значениями ширины (*width*) и длины (*length*).
+
+Количество необходимого качественного сырья на одну единицу продукции рассчитывается как площадь продукции, умноженная на коэффициент типа продукции.
+
+Коэффициенты типа продукции (*product_type*):
+
+* Тип продукции 1 - `1.1`,
+* Тип продукции 2 - `2.5`,
+* Тип продукции 3 - `8.43`.
+
+При этом нужно учитывать процент брака материала в зависимости от его типа (*material_type*):
+
+* Тип материала 1 - `0.3%`,
+* Тип материала 2 - `0.12%`.
+
+При этом если в качестве параметров метода будут приходить несуществующие типы продукции/материалов или другие неподходящие данные, то метод должен вернуть `-1`.
+
+
+Например, необходимо изготовить 15 единиц продукции 3 типа шириной 20 и длиной 45 из материала 1 типа. Количество качественного сырья (без учета брака) будет равно `113 805`. Однако с учетом возможного брака материалов общее необходимое количество сырья должно быть увеличено до `114 147,442`. Округлив полученное значение до ближайшего большего целого, получим `114 148` единиц необходимого сырья.
+
+### Спецификация метода
+
+Метод должен принимать идентификатор типа продукции, идентификатор типа материала, количество необходимой продукции для производства, ширину продукции и длину продукции, а возвращать целое число – количество необходимого сырья с учетом возможного брака сырья.
+
+Библиотека классов | WSUniversalLib.dll
+-------------------|------------------
+Название класса    | Calculation
+Название метода    | GetQuantityForProduct()
+Входящие обязательные параметры | int productType,<br/> int materialType,<br/>int count,<br/>float width,<br/>float length
+Возвращаемые параметры | int
+
+## Разработка модульных тестов (Unit-tests)
+
+Для выполнения процедуры тестирования созданного вами метода библиотеки **WSUniversalLib**, возвращающего целое количество сырья для производства, вам необходимо создать отдельный проект модульных тестов.
+
+В рамках проекта разработайте тесты, максимально полно покрывающие функционал метода.
+
+Обратите внимание, что имена тестов должны отражать их суть, т.е. вместо `TestMethod1()` тест следует назвать, например, `GetQuantityForProduct_NonExistentProductType()` для тестирования случая передачи несуществующего типа продукции.
+
+Необходимо разработать модульные тесты, которые на основании исходных данных можно условно разделить на 2 группы следующим образом: 10 методов низкой сложности и 5 методов высокой сложности.

+ 3 - 8
readme.md

@@ -30,11 +30,6 @@
 
 <div style="page-break-after: always;"></div>
 
-QR код | Описание
-:-----:|---------- 
-![ссылка на гитхаб](http://qrcoder.ru/code/?https%3A%2F%2Fgithub.com%2Fkolei%2FPiRIS&4&0) | https://github.com/kolei/PiRIS
-![группа в телеге](http://qrcoder.ru/code/?https%3A%2F%2Ft.me%2F%2B5CXDecWYma8yODBi&4&0) | [группа в `телеграм`](https://t.me/+5CXDecWYma8yODBi)
-
 # Содержание
 
 <!-- 
@@ -540,8 +535,8 @@ tablayout
 **Лабораторнo-практические работы**
 
 1. [Создание проекта по индивидуальному заданию. Разработка Unit-тестов для проекта](./articles/5_3_1_10_unit_test_lab.md)
-1. [Реализация тестов для прошлых чемпионатов](./articles/testing_lab.md)
-1. Лабораторная работа «Разработка тестового сценария проекта»
+1. [Реализация тестов для прошлых чемпионатов (WS22)](./articles/testing_lab.md)
+1. [Реализация тестов для прошлых чемпионатов (DE21)](./articles/testing_lab_de21.md)
 2. Лабораторная работа «Разработка тестовых пакетов»
 3. Лабораторная работа «Использование инструментария анализа качества»
 4. Лабораторная работа «Анализ и обеспечение обработки исключительных ситуаций»
@@ -556,7 +551,7 @@ tablayout
 ## Практика №2, разработка web-приложений
 <!-- (articles/praktika_I.md) -->
 
-## [Курсовой проект (ПМ 06)](articles/kp2.md)
+## [Курсовой проект (ПМ 06)](./articles/kp2.md)
 
 <!-- 
 -- разрешение пользователю создавать базы