体测系统
This commit is contained in:
1 parent
33b875b21a
commit
c74c1e3914
19 files changed
+10507
-7
No files matched your search
@@ -0,0 +1,49 @@
|
||||
using Jiaowu.Api.Domain.Academic;
|
||||
using Jiaowu.Api.Infrastructure.Academic;
|
||||
|
||||
namespace Jiaowu.Api.Tests;
|
||||
|
||||
public sealed class PhysicalFitnessScoringTests
|
||||
{
|
||||
[Fact]
|
||||
public void MaleFreshman_AtAllPerfectThresholds_ScoresOneHundred()
|
||||
{
|
||||
var result = PhysicalFitnessScoringService.Calculate(
|
||||
Gender.Male,
|
||||
1,
|
||||
new PhysicalFitnessMeasurements(175, 70, 5040, 6.7m, 24.9m, 273, 19, 197));
|
||||
|
||||
Assert.Equal(100m, result.StandardScore);
|
||||
Assert.Equal(0m, result.BonusScore);
|
||||
Assert.Equal(100m, result.TotalScore);
|
||||
Assert.Equal(PhysicalTestGrade.Excellent, result.Grade);
|
||||
Assert.Equal(9, result.Items.Count);
|
||||
Assert.Equal(22.9m, result.Items.Single(x => x.ItemCode == PhysicalTestItemCode.Bmi).Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FemaleSenior_UsesSeniorFemaleThresholdsAndBonus()
|
||||
{
|
||||
var result = PhysicalFitnessScoringService.Calculate(
|
||||
Gender.Female,
|
||||
4,
|
||||
new PhysicalFitnessMeasurements(165, 55, 3450, 7.4m, 26.3m, 208, 70, 146));
|
||||
|
||||
Assert.Equal(100m, result.StandardScore);
|
||||
Assert.Equal(20m, result.BonusScore);
|
||||
Assert.Equal(120m, result.TotalScore);
|
||||
Assert.Equal(10m, result.Items.Single(x => x.ItemCode == PhysicalTestItemCode.Strength).BonusScore);
|
||||
Assert.Equal(10m, result.Items.Single(x => x.ItemCode == PhysicalTestItemCode.EnduranceRun).BonusScore);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UnknownGender_IsRejected()
|
||||
{
|
||||
var error = Assert.Throws<ArgumentException>(() => PhysicalFitnessScoringService.Calculate(
|
||||
Gender.Unknown,
|
||||
1,
|
||||
new PhysicalFitnessMeasurements(170, 60, 3000, 8, 10, 200, 10, 240)));
|
||||
|
||||
Assert.Contains("性别", error.Message);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user