public void Assignable_AlreadyAssigned24_NotPGY1(ResidentYears residentYears) { //24HRShift var assignedShift = new Shift(DateTime.Today, TimeConstants.StartOfDay, TimeConstants.EndOfDay); var resident = new Resident { ResidentYear = residentYears }; resident.Shifts.Add(assignedShift); Assert.AreEqual(24, assignedShift.DateRange.Hours); var unAssingableShift = new Shift(DateTime.Today.AddDays(1), TimeConstants.StartOfDay, TimeConstants.StartOfDay); //1 minute shift Assert.IsFalse(new ContinuousDutyHourConstraint().Assignable(resident, unAssingableShift)); var assingableShift = new Shift(DateTime.Today.AddDays(1), TimeConstants.StartOfDay.AddMinutes(1), TimeConstants.StartOfDay.AddMinutes(1)); //1 minute shift non conitinous Assert.IsTrue(new ContinuousDutyHourConstraint().Assignable(resident, assingableShift)); }
public void Assignable_ShiftWouldResultInMoreThan24_NotPGY1(ResidentYears residentYears) { //23.5HRShift var assignedShift = new Shift(DateTime.Today, TimeConstants.StartOfDay.AddMinutes(30), TimeConstants.EndOfDay); var resident = new Resident { ResidentYear = residentYears }; resident.Shifts.Add(assignedShift); //31 minute shift var unAssingableShift = new Shift(DateTime.Today.AddDays(1), TimeConstants.StartOfDay, TimeConstants.StartOfDay.AddMinutes(30)); Assert.IsFalse(new ContinuousDutyHourConstraint().Assignable(resident, unAssingableShift)); //30 minute shift var assingableShift = new Shift(DateTime.Today.AddDays(1), TimeConstants.StartOfDay, TimeConstants.StartOfDay.AddMinutes(29)); Assert.IsTrue(new ContinuousDutyHourConstraint().Assignable(resident, assingableShift)); }
public RotationResidents this[ResidentYears index] { get { switch (index) { case ResidentYears.PGY_1: return new RotationResidents(Interns); case ResidentYears.PGY_2: return new RotationResidents(Senior1s); case ResidentYears.PGY_3: return new RotationResidents(Senior2s); case ResidentYears.Chief: return new RotationResidents(Chiefs); default: throw new IndexOutOfRangeException(); } } }