校历优化

This commit is contained in:
biss committed 2026-09-29 09:33:25 +08:00
1 parent 0ef0d4d399
commit 4ef4164b00
6 files changed
+196 -39

No files matched your search

@@ -0,0 +1,48 @@
using Jiaowu.Api.Infrastructure.AcademicCalendar;
namespace Jiaowu.Api.Tests;
public sealed class HolidayCnRangesTests
{
[Fact]
public void Group_merges_only_consecutive_days_with_the_same_name_and_status()
{
var ranges = HolidayCnRanges.Group(
[
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 1), true),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 2), true),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 3), true),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 4), false),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 5), true),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 7), true)
]);
Assert.Collection(
ranges,
range =>
{
Assert.Equal("国庆节", range.Name);
Assert.Equal(new DateOnly(2026, 10, 1), range.StartsOn);
Assert.Equal(new DateOnly(2026, 10, 3), range.EndsOn);
Assert.True(range.IsOffDay);
},
range =>
{
Assert.Equal(new DateOnly(2026, 10, 4), range.StartsOn);
Assert.Equal(range.StartsOn, range.EndsOn);
Assert.False(range.IsOffDay);
},
range =>
{
Assert.Equal(new DateOnly(2026, 10, 5), range.StartsOn);
Assert.Equal(range.StartsOn, range.EndsOn);
Assert.True(range.IsOffDay);
},
range =>
{
Assert.Equal(new DateOnly(2026, 10, 7), range.StartsOn);
Assert.Equal(range.StartsOn, range.EndsOn);
Assert.True(range.IsOffDay);
});
}
}