Разработайте библиотеку, которая позволит вернуть список свободных временных интервалов (заданного размера) в графике сотрудника для формирования оптимального графика работы сотрудников.
Необходимо обязательно следовать правилам именования библиотек, классов и методов в них. В случае ошибок в рамках именования ваша работа не может быть проверена и ваш результат не будет зачтен. Классы и методы должны содержать модификатор public (если это реализуемо в рамках платформы), чтобы внешние приложения могли получить к ним доступ.
Вход:
Выход:
Требования к именованиям и форматам:
| 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-тесты по описанным тестовым сценариям