班级课表支持年级、学院、专业、行政班分级筛选。 管理员课表查询中心支持班级、教师、场地三种课表。 超级管理员、校级教务、学院教务、领导可查询草稿和已发布版本;学院管理员保留学院数据范围。 增加周视图、日视图切换。 支持 Excel 导出和当前视图 PDF 导出。 学生端增加“空闲教室”,支持学期、周次、星期、连续节次、校区、教学楼、容量筛选,并按教学楼分组、分页展示。 空闲教室只依据正式课表计算;未配置节次表时自动提供默认节次。
41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
using Jiaowu.Api.Domain.Academic;
|
|
using Jiaowu.Api.Infrastructure.Timetables;
|
|
|
|
namespace Jiaowu.Api.Tests;
|
|
|
|
public sealed class FreeClassroomRulesTests
|
|
{
|
|
[Theory]
|
|
[InlineData(WeekPattern.All, 2, true)]
|
|
[InlineData(WeekPattern.Odd, 3, true)]
|
|
[InlineData(WeekPattern.Odd, 4, false)]
|
|
[InlineData(WeekPattern.Even, 4, true)]
|
|
[InlineData(WeekPattern.Even, 3, false)]
|
|
public void MatchesWeek_respects_all_odd_and_even_patterns(
|
|
WeekPattern pattern,
|
|
int week,
|
|
bool expected)
|
|
{
|
|
Assert.Equal(expected, FreeClassroomRules.MatchesWeek(pattern, week));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(1, 2, 2, 2, true)]
|
|
[InlineData(3, 1, 2, 1, false)]
|
|
[InlineData(1, 1, 2, 1, false)]
|
|
[InlineData(4, 3, 3, 5, true)]
|
|
public void PeriodsOverlap_uses_half_open_period_ranges(
|
|
int requestedStart,
|
|
int requestedCount,
|
|
int occupiedStart,
|
|
int occupiedCount,
|
|
bool expected)
|
|
{
|
|
Assert.Equal(expected, FreeClassroomRules.PeriodsOverlap(
|
|
requestedStart,
|
|
requestedCount,
|
|
occupiedStart,
|
|
occupiedCount));
|
|
}
|
|
}
|