testing_lab_de22.md 4.0 KB

Библиотека формирующая список свободных временных интервалов в графике сотрудника для формирования оптимального графика работы сотрудников (ДЭ22)

Разработка библиотеки

Разработайте библиотеку, которая позволит вернуть список свободных временных интервалов (заданного размера) в графике сотрудника для формирования оптимального графика работы сотрудников.

Необходимо обязательно следовать правилам именования библиотек, классов и методов в них. В случае ошибок в рамках именования ваша работа не может быть проверена и ваш результат не будет зачтен. Классы и методы должны содержать модификатор public (если это реализуемо в рамках платформы), чтобы внешние приложения могли получить к ним доступ.

Вход:

  • список занятых промежутков времени (в двух массивах: startTimes - начало, durations - длительность),
  • минимальное необходимое время для работы менеджера (consultationTime),
  • рабочий день сотрудника (начало - beginWorkingTime и завершение - endWorkingTime)

Выход:

  • список подходящих свободных временных промежутков (в массив строк формата HH:mm-HH:mm)

Требования к именованиям и форматам:

  C# Java Python
Библиотека классов SF2022User{NN}Lib.dll SF2022User{NN}Lib.jar SF2022User{NN}Lib
Название класса Calculations Calculations Calculations
Название метода AvailablePeriods() availablePeriods() available_periods()
Входящие обязательные параметры TimeSpan[] startTimes,
int[] durations,
TimeSpan beginWorkingTime,
TimeSpan endWorkingTime,
int consultationTime
LocalTime[] startTimes,
int[] durations,
LocalTime beginWorkingTime,
LocalTime endWorkingTime,
int consultationTime
time[] start_times,
int[] durations,
time begin_working_time,
time end_working_time,
int consultation_time
Возвращаемые параметры string[] string[] string[]

Пример:

Вход Выход
startTimes [10:00, 11:00, 15:00, 15:30, 16:50],
durations [60, 30, 10, 10, 40],
beginWorkingTime 08:00,
endWorkingTime 18:00,
consultationTime 30
["08:00-08:30",
"08:30-09:00",
"09:00-09:30",
"09:30-10:00",
"11:30-12:00",
"12:00-12:30",
"12:30-13:00",
"13:00-13:30",
"13:30-14:00",
"14:00-14:30",
"14:30-15:00",
"15:40-16:10",
"16:10-16:40",
"17:30-18:00"]

Тестирование программных решений

Тестовые сценарии

Опишите 10 тестовых сценариев для библиотеки, функционал которой описан ранее. Важно, чтобы тестовые сценарии предусматривали различные ситуации. Например, недостаточное время в промежутках между ранее созданными консультациями, либо в начале рабочего дня, либо в конце рабочего дня; различная длительность консультация и т.д.

Модульные тесты

Реализуйте unit-тесты по описанным тестовым сценариям