Neue Abwensenheitsmodi plus Upgrade Sitzplan

This commit is contained in:
2026-08-19 12:27:12 +02:00
parent 1731e5088e
commit b2c1b15167
16 changed files with 383 additions and 30 deletions
@@ -22,16 +22,22 @@ public sealed class AttendanceBalanceServiceTests
(new DateOnly(2025, 9, 5), AttendanceStatus.Truant),
(new DateOnly(2025, 9, 6), AttendanceStatus.OtherSchoolEvent),
(new DateOnly(2025, 9, 7), AttendanceStatus.ExcusePending),
(new DateOnly(2025, 9, 8), AttendanceStatus.Late),
(new DateOnly(2025, 9, 9), AttendanceStatus.SignificantlyLate),
(new DateOnly(2025, 9, 10), AttendanceStatus.LeftDuringClass),
(new DateOnly(2025, 9, 11), AttendanceStatus.LearningIsland),
(new DateOnly(2025, 9, 12), AttendanceStatus.Suspended),
};
var balance = _service.Calculate(entries, From, To);
Assert.Equal(7, balance.TotalChecked);
Assert.Equal(2, balance.Present);
Assert.Equal(12, balance.TotalChecked);
Assert.Equal(4, balance.Present);
Assert.Equal(1, balance.Excused);
Assert.Equal(2, balance.Unexcused); // Unexcused + Truant
Assert.Equal(1, balance.SchoolEvent);
Assert.Equal(3, balance.Unexcused); // Unexcused + Truant + im Unterricht abgängig
Assert.Equal(3, balance.SchoolEvent); // Schulveranstaltung + Lerninsel + Suspendierung
Assert.Equal(1, balance.ExcusePending);
Assert.Equal(41.7, balance.AbsenceRatePercent);
}
[Fact]