Tests merge #8

Open
vantablackTea wants to merge 12 commits from tests-branch into main
3 changed files with 179 additions and 0 deletions
Showing only changes of commit 02bfe60e8b - Show all commits
+97
View File
@@ -0,0 +1,97 @@
расписание идет так: день недели, дата в скобках, расписание под каждую пару конкретно по времени. в одной паре может быть несколько под разные подгруппы. я их разделил знаком ";", в приложении они должны быть разделены перегородкой. все пары находятся в одной строке по времени. вместо <пусто> должно быть пустое место соответственно. выглядит типичное расписание как: День недели, Дата, Время пар - Название пары (Группа, Название, Тип, Преподаватель, Кабинет); Название пары ...
Review

это для чего

это для чего
Факультет автоматики и вычислительной техники (ОРУ)
Группа: ИВТб-3304-05-00
Понедельник (14.09.26): <пусто, пар нет>
Вторник (15.09.26): 08:20-09:50 - <пусто>
10:00-11:30 - ИВТб-3304-05-00 Объектно-ориентированный анализ и проектирование Лекция Преподаватель -.П. 2-202; ИВТб-3304-05-00 Разработка Web-приложений Лекция Преподаватель -.П. 1-236
11:45-13:15 - ИВТб-3304-05-00 Инструментальные средства проектирования компонентов вычислительной техники Лекция Семеновых В.И. 2-201; ИВТб-3304-05-00 Предметно-ориентированные автоматизированные информационные системы Лекция Прозорова Ю.А. 1-313; ИВТб-3304-05-00 Сценарное и функциональное программирование Лекция Преподаватель -.П. 1-311
14:00-15:30 - ИВТб-3304-05-00 Инструментальные средства проектирования компонентов вычислительной техники Лабораторная работа Семеновых В.И. 2-201; ИВТб-3304-05-00 Предметно-ориентированные автоматизированные информационные системы Лабораторная работа Прозорова Ю.А. 1-236; ИВТб-3304-05-00 Сценарное и функциональное программирование Лабораторная работа Преподаватель -.П. 1-114
15:45-17:15 - ИВТб-3304-05-00 Инструментальные средства проектирования компонентов вычислительной техники Лабораторная работа Семеновых В.И. 2-201; ИВТб-3304-05-00 Предметно-ориентированные автоматизированные информационные системы Лабораторная работа Прозорова Ю.А. 1-236; ИВТб-3304-05-00 Сценарное и функциональное программирование Лабораторная работа Преподаватель -.П. 1-114
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Среда (16.09.26): 08:20-09:50 - Введение в архитектуру ЭВМ Лекция Страбыкин Д.А. 1-242
10:00-11:30 - Теория компиляторов и формальные грамматики Лекция Мельцов В.Ю. 1-242
11:45-13:15 - <пусто>
14:00-15:30 - <пусто>
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Четверг (17.09.26): 08:20-09:50 - <пусто>
10:00-11:30 - <пусто>
11:45-13:15 - ИВТб-3304-05-00, 01 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (11 131) Практическое занятие Трушкова Е.Л. 9-115; ИВТб-3304-05-00, 01 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (11 039) Практическое занятие Салопин О.М. 9-301 ИВТб-3304-05-00, 02 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (11 039) Практическое занятие Салопин О.М. 9-301; ИВТб-3304-05-00, 02 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (21 285) Практическое занятие Хвостенко С.Ю. 9-209.; ИВТб-3304-05-00, 01 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (11 124) Практическое занятие Пластинина В.Б. 9-208
14:00-15:30 - Архитектура операционных систем и сервисное программное обеспечение Лекция Преподаватель -.П. 1-439
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Пятница (18.09.26): 08:20-09:50 - ИВТб-3304-05-00, 01 подгруппа Введение в архитектуру ЭВМ Лабораторная работа Страбыкин Д.А. 1-117; ИВТб-3304-05-00, 02 подгруппа Введение в архитектуру ЭВМ Лабораторная работа Страбыкин Д.А. 1-117_
10:00-11:30 - ИВТб-3304-05-00, 01 подгруппа Введение в архитектуру ЭВМ Лабораторная работа Страбыкин Д.А. 1-117; ИВТб-3304-05-00, 02 подгруппа Введение в архитектуру ЭВМ Лабораторная работа Страбыкин Д.А. 1-117_
11:45-13:15 - Введение в архитектуру ЭВМ Практическое занятие Страбыкин Д.А. 2-207
14:00-15:30 - Философия Практическое занятие Коротышева Н.Н. 2-407
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Суббота (19.09.26): 08:20-09:50 - <пусто>
10:00-11:30 - <пусто>
11:45-13:15 - <пусто>
14:00-15:30 - <пусто>
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Воскресенье (20.09.26): 08:20-09:50 - <пусто>
10:00-11:30 - <пусто>
11:45-13:15 - <пусто>
14:00-15:30 - <пусто>
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Понедельник (21.09.26): 08:20-09:50 - <пусто>
10:00-11:30 - ИВТб-3304-05-00, 01 подгруппа Теория компиляторов и формальные грамматики Лабораторная работа Караваева О.В. 2-308; ИВТб-3304-05-00, 02 подгруппа Теория компиляторов и формальные грамматики Лабораторная работа Караваева О.В. 2-308
11:45-13:15 - ИВТб-3304-05-00, 01 подгруппа Теория компиляторов и формальные грамматики Лабораторная работа Караваева О.В. 2-308; ИВТб-3304-05-00, 02 подгруппа Теория компиляторов и формальные грамматики Лабораторная работа Караваева О.В. 2-308_
14:00-15:30 - <пусто>
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Вторник (22.09.26): 08:20-09:50 - Объектно-ориентированный анализ и проектирование Практическое занятие Шмакова Н.А. 2-202
10:00-11:30 - ИВТб-3304-05-00 Инструментальные средства проектирования компонентов вычислительной техники Лекция Семеновых В.И. 2-201; ИВТб-3304-05-00 Предметно-ориентированные автоматизированные информационные системы Лекция Прозорова Ю.А. 1-313; ИВТб-3304-05-00 Сценарное и функциональное программирование Лекция Преподаватель -.П. 1-311
11:45-13:15 - ИВТб-3304-05-00 Объектно-ориентированный анализ и проектирование Лекция Преподаватель -.П. 2-202; ИВТб-3304-05-00 Проектирование систем на ПЛИС Лекция Крутиков А.К. 1-313; ИВТб-3304-05-00 Разработка Web-приложений Лекция Преподаватель -.П. 1-236
14:00-15:30 - ИВТб-3304-05-00 Проектирование систем на ПЛИС Практическое занятие Крутиков А.К. 1-109; ИВТб-3304-05-00 Разработка Web-приложений Практическое занятие Пащенко Д.Э. 1-116
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Среда (23.09.26): 08:20-09:50 - Теория компиляторов и формальные грамматики Практическое занятие Караваева О.В. 2-201
10:00-11:30 - Введение в архитектуру ЭВМ Лекция Страбыкин Д.А. 1-242
11:45-13:15 - Архитектура операционных систем и сервисное программное обеспечение Лекция Преподаватель -.П. 1-242
14:00-15:30 - <пусто>
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Четверг (24.09.26): 08:20-09:50 - <пусто>
10:00-11:30 - <пусто>
11:45-13:15 - ИВТб-3304-05-00, 01 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (11 131) Практическое занятие Трушкова Е.Л. 9-115; ИВТб-3304-05-00, 01 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (11 039) Практическое занятие Салопин О.М. 9-301 ИВТб-3304-05-00, 02 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (11 039) Практическое занятие Салопин О.М. 9-301; ИВТб-3304-05-00, 02 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (21 285) Практическое занятие Хвостенко С.Ю. 9-101; ИВТб-3304-05-00, 01 подгруппа Элективные дисциплины (модули) по физической культуре и спорту Практическое занятие (11 124) Практическое занятие Пластинина В.Б. 9-208
14:00-15:30 - ИВТб-3304-05-00 Объектно-ориентированный анализ и проектирование Лабораторная работа Шмакова Н.А. 2-202; ИВТб-3304-05-00 Проектирование систем на ПЛИС Лабораторная работа Крутиков А.К. 1-239; ИВТб-3304-05-00 Разработка Web-приложений Лабораторная работа Пащенко Д.Э. 1-109
15:45-17:15 - ИВТб-3304-05-00 Объектно-ориентированный анализ и проектирование Лабораторная работа Шмакова Н.А. 2-202; ИВТб-3304-05-00 Проектирование систем на ПЛИС Лабораторная работа Крутиков А.К. 1-239; ИВТб-3304-05-00 Разработка Web-приложений Лабораторная работа Пащенко Д.Э. 1-109
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Пятница (25.09.26): 08:20-09:50 - <пусто>
10:00-11:30 - <пусто>
11:45-13:15 - <пусто>
14:00-15:30 - Теория компиляторов и формальные грамматики Лекция Мельцов В.Ю. 1-242
15:45-17:15 - Архитектура операционных систем и сервисное программное обеспечение Лабораторная работа Караваева О.В. 2-201
17:20-18:50 - Архитектура операционных систем и сервисное программное обеспечение Лабораторная работа Караваева О.В. 2-201
18:55-20:25 - <пусто>
Суббота (26.09.26): 08:20-09:50 - <пусто>
10:00-11:30 - <пусто>
11:45-13:15 - <пусто>
14:00-15:30 - <пусто>
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Воскресенье (27.09.26): 08:20-09:50 - <пусто>
10:00-11:30 - <пусто>
11:45-13:15 - <пусто>
14:00-15:30 - <пусто>
15:45-17:15 - <пусто>
17:20-18:50 - <пусто>
18:55-20:25 - <пусто>
Binary file not shown.
@@ -0,0 +1,82 @@
package agzam.vyatsu.domain
import agzam.vyatsu.domain.model.Season
import org.junit.Assert.assertEquals
import org.junit.Assert.assertThrows
import org.junit.Test
import java.time.LocalDate
import java.time.format.DateTimeParseException
class ScheduleDatesTest {
private val firstMonday = "14092026"
@Test
fun asDate_parsesDdMmYyyy() {
assertEquals(LocalDate.of(2026, 9, 14), ScheduleDates.asDate("14092026"))
assertEquals(LocalDate.of(2026, 9, 1), ScheduleDates.asDate("01092026"))
}
@Test
fun asDate_wrongFormat_throws() {
assertThrows(DateTimeParseException::class.java) {
ScheduleDates.asDate("2026-09-14")
}
}
@Test
fun dayIndexes_mondayOfFirstWeek_isZeroZero() {
assertEquals(0 to 0, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 14)))
}
@Test
fun dayIndexes_tuesdayToSaturday_areSameWeek() {
assertEquals(0 to 1, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 15)))
assertEquals(0 to 2, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 16)))
assertEquals(0 to 3, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 17)))
assertEquals(0 to 4, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 18)))
assertEquals(0 to 5, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 19)))
}
@Test
fun dayIndexes_sunday_movesToNextMonday() {
assertEquals(1 to 0, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 20)))
}
@Test
fun dayIndexes_secondWeek() {
assertEquals(1 to 0, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 21)))
assertEquals(1 to 1, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 22)))
assertEquals(1 to 5, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 26)))
}
@Test
fun dayIndexes_thirdCalendarWeek_wrapsToFirstScheduleWeek() {
assertEquals(0 to 0, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 28)))
}
@Test
fun dayIndexes_dateBeforeFirstMonday_isSecondScheduleWeek() {
assertEquals(1 to 0, ScheduleDates.dayIndexes(firstMonday, LocalDate.of(2026, 9, 7)))
}
@Test
fun dateByIndexes_composesFromFirstDate() {
assertEquals(LocalDate.of(2026, 9, 14), ScheduleDates.dateByIndexes(firstMonday, 0, 0))
assertEquals(LocalDate.of(2026, 9, 15), ScheduleDates.dateByIndexes(firstMonday, 0, 1))
assertEquals(LocalDate.of(2026, 9, 21), ScheduleDates.dateByIndexes(firstMonday, 1, 0))
assertEquals(LocalDate.of(2026, 9, 27), ScheduleDates.dateByIndexes(firstMonday, 1, 6))
}
@Test
fun currentSeason_augustToDecember_isAutumn() {
assertEquals(Season.AUTUMN, ScheduleDates.currentSeason(LocalDate.of(2026, 8, 1)))
assertEquals(Season.AUTUMN, ScheduleDates.currentSeason(LocalDate.of(2026, 12, 31)))
}
@Test
fun currentSeason_januaryToJuly_isSpring() {
assertEquals(Season.SPRING, ScheduleDates.currentSeason(LocalDate.of(2026, 1, 1)))
assertEquals(Season.SPRING, ScheduleDates.currentSeason(LocalDate.of(2026, 7, 31)))
}
}