public void T002_TimeHHMM_Display() { /** Nominal Results */ TimeHHMM theTestTime = new TimeHHMM(6, 30); Assert.AreEqual <string>("06:30", theTestTime.ToString()); }
public void T007_TimeHHMM_Comparison() { //TimeHHMM objects for test TimeHHMM time1 = new TimeHHMM(8, 30); TimeHHMM time2 = new TimeHHMM(8, 30); TimeHHMM time3 = new TimeHHMM(9, 0); //less-than comparisons Assert.IsTrue(time1 < time3); Assert.IsFalse(time1 < time2); Assert.IsFalse(time3 < time1); //greater-than comparisons Assert.IsTrue(time3 > time1); Assert.IsFalse(time1 > time2); Assert.IsFalse(time1 > time3); //less-than-equal-to comparisons Assert.IsTrue(time1 <= time3); Assert.IsTrue(time1 <= time2); Assert.IsFalse(time3 <= time1); //greater-than-equal-to comparisons Assert.IsTrue(time3 >= time1); Assert.IsTrue(time1 >= time2); Assert.IsFalse(time1 >= time3); }
public void T004_TimeHHMM_Difference() { //Time objects for testing int hour1 = 12; int minute1 = 0; int hour2 = 0; int minute2 = 0; double length = Math.Abs(hour1 - hour2) * 60.0 + (minute1 - minute2); TimeHHMM time1 = new TimeHHMM(hour1, minute1); TimeHHMM time2 = new TimeHHMM(hour2, minute2); TimeHHMM time3; TimeSpan timeDiffResult; TimeSpan time12Diff = new TimeSpan(12, 0, 0); /** Nominal subtraction */ timeDiffResult = time1 - time2; Assert.AreEqual <double>(length, timeDiffResult.TotalMinutes); time3 = time1 - (int)time12Diff.TotalMinutes; Assert.AreEqual <int>(time2.Hour, time3.Hour); Assert.AreEqual <int>(time2.Minute, time3.Minute); time3 = time1 - time12Diff; Assert.AreEqual <int>(time2.Hour, time3.Hour); Assert.AreEqual <int>(time2.Minute, time3.Minute); /** Reverse subtraction */ timeDiffResult = time2 - time1; Assert.AreEqual <double>(length, timeDiffResult.TotalMinutes); /** Identical subtraction */ timeDiffResult = time1 - time1; Assert.AreEqual <double>(0.0, timeDiffResult.TotalMinutes); /** Crossing day barrier */ TimeHHMM midnight = new TimeHHMM(0, 0); TimeHHMM elevenThirtyPM = new TimeHHMM(23, 30); timeDiffResult = midnight - elevenThirtyPM; Assert.AreEqual <double>(30.0, timeDiffResult.TotalMinutes); time3 = midnight - 30; Assert.AreEqual <int>(elevenThirtyPM.Hour, time3.Hour); Assert.AreEqual <int>(elevenThirtyPM.Minute, time3.Minute); time3 = midnight - new TimeSpan(0, 30, 0); Assert.AreEqual <int>(elevenThirtyPM.Hour, time3.Hour); Assert.AreEqual <int>(elevenThirtyPM.Minute, time3.Minute); }
public ScheduleItemUnitTests() { //Name of item itemName = "Homeroom"; //Start @ 8:15a startHour = 8; startMinute = 15; startTime = new TimeHHMM(startHour, startMinute); //End @ 8:45a endHour = 8; endMinute = 45; endTime = new TimeHHMM(endHour, endMinute); duration = 30; }
public void T006_TimeHHMM_Equality() { //TimeHHMM objects for test TimeHHMM time1 = new TimeHHMM(8, 30); TimeHHMM time2 = new TimeHHMM(8, 30); TimeHHMM time3 = new TimeHHMM(9, 0); TimeSpan span = new TimeSpan(); //Equals() Assert.IsTrue(time1.Equals(time2)); Assert.IsFalse(time1.Equals(time3)); Assert.IsFalse(time1.Equals(span)); //== operator Assert.IsTrue(time1 == time2); Assert.IsFalse(time1 == time3); //!= operator Assert.IsTrue(time1 != time3); Assert.IsFalse(time1 != time2); }
public void T001_TimeHHMM_Constructors() { int hour = 6; int minute = 30; /** Nominal Construction */ TimeHHMM theNominalTime = new TimeHHMM(hour, minute); Assert.AreEqual <int>(hour, theNominalTime.Hour); Assert.AreEqual <int>(minute, theNominalTime.Minute); /** Out of Bounds Construction */ TimeHHMM theOOBHour = new TimeHHMM(24, minute); Assert.AreEqual <int>(0, theOOBHour.Hour); Assert.AreEqual <int>(minute, theOOBHour.Minute); TimeHHMM theOOBMinute = new TimeHHMM(hour, 60); Assert.AreEqual <int>(hour, theOOBMinute.Hour); Assert.AreEqual <int>(0, theOOBMinute.Minute); }
public void T005_TimeHHMM_Addition() { //TimeHHMM + TimeSpan TimeHHMM theTestStart = new TimeHHMM(9, 0); //9am TimeSpan theTestSpan = new TimeSpan(12, 45, 0); //12hr 45m TimeHHMM theNewTime = theTestStart + theTestSpan; Assert.AreEqual <int>(21, theNewTime.Hour); Assert.AreEqual <int>(45, theNewTime.Minute); //Truncation to minutes TimeSpan theTestSpan2 = new TimeSpan(12, 45, 45); TimeHHMM theNewTime2 = theTestStart + theTestSpan2; Assert.AreEqual <TimeHHMM>(theNewTime, theNewTime2); //TimeHHMM + minutes TimeHHMM theNewTime3 = theTestStart + 35; Assert.AreEqual <int>(9, theNewTime3.Hour); Assert.AreEqual <int>(35, theNewTime3.Minute); }
public void T004_ScheduleItem_ConflictsWithEnd() { bool result = false; //New TimeHHMMs for Test TimeHHMM time1 = new TimeHHMM(8, 30); TimeHHMM time2 = new TimeHHMM(8, 45); TimeHHMM time3 = new TimeHHMM(9, 0); //ScheduleItems for Test ScheduleItem item = new ScheduleItem("Item", time1, 30); //No Conflict result = item.ConflictsWithEnd(time1); Assert.IsFalse(result); //Conflict result = item.ConflictsWithEnd(time2); Assert.IsTrue(result); result = item.ConflictsWithEnd(time3); Assert.IsTrue(result); }
public void T002_ScheduleItem_ConflictsWith() { bool result = false; //New TimeHHMMs for Test TimeHHMM time1 = new TimeHHMM(8, 30); TimeHHMM time2 = new TimeHHMM(8, 45); TimeHHMM time3 = new TimeHHMM(9, 0); //ScheduleItems for Test ScheduleItem item1 = new ScheduleItem("Item1", time1, 30); ScheduleItem item2 = new ScheduleItem("Item2", time2, 30); ScheduleItem item3 = new ScheduleItem("Item3", time3, 30); //No Conflict result = item1.ConflictsWith(item3); Assert.IsFalse(result); result = item1.ConflictsWith(null); Assert.IsFalse(result); //Conflict result = item1.ConflictsWith(item2); Assert.IsTrue(result); }
public void T005_ScheduleItem_Reschedule() { bool result = false; //TimeHHMMs for Test TimeHHMM startTime = new TimeHHMM(8, 30); TimeHHMM endTime = new TimeHHMM(9, 0); TimeHHMM newTime = new TimeHHMM(9, 30); //Nominal Test ScheduleItem nominalItem = new ScheduleItem("Nominal Item", startTime, endTime); result = nominalItem.Reschedule(newTime); Assert.IsTrue(result); Assert.AreEqual <TimeHHMM>(newTime, nominalItem.StartTime); //New start time Assert.AreNotEqual <TimeHHMM>(endTime, nominalItem.EndTime); //New end time Assert.AreEqual <int>((int)(endTime - startTime).TotalMinutes, nominalItem.Duration); //Same duration //Failed test ScheduleItem failureItem = new ScheduleItem("Failure Item", new TimeHHMM(11, 0), 45); result = failureItem.Reschedule(null); Assert.IsFalse(result); }
public void T002_Student_AddClass() { /** Method Locals */ //Miscellaneous bool result = false; //Student object Student nominalTestStudent = new Student("John", "Doe"); Student failTestStudent = new Student("Jane", "Doe"); Student scheduleConflictStudent = new Student("Steve", "Doe"); Student nameConflictStudent = new Student("Sally", "Doe"); //Class names String[] classNames = { "Homeroom", "Reading", "Math", "Social Studies", "Recess" }; //Class start times Tuples Tuple <int, int>[] startTimes = { new Tuple <int, int>(8, 0), new Tuple <int, int>(9, 0), new Tuple <int, int>(9, 55), new Tuple <int, int>(10, 40), new Tuple <int, int>(11, 30) }; //Class start time TimeHHMM TimeHHMM[] classStartTimes = { new TimeHHMM(startTimes[0].Item1, startTimes[0].Item2), new TimeHHMM(startTimes[1].Item1, startTimes[1].Item2), new TimeHHMM(startTimes[2].Item1, startTimes[2].Item2), new TimeHHMM(startTimes[3].Item1, startTimes[3].Item2), new TimeHHMM(startTimes[4].Item1, startTimes[4].Item2) }; //Class end times Tuples Tuple <int, int>[] endTimes = { new Tuple <int, int>(8, 50), new Tuple <int, int>(9, 45), new Tuple <int, int>(10, 30), new Tuple <int, int>(11, 30), new Tuple <int, int>(12, 15) }; //Class end time TimeHHMM TimeHHMM[] classEndTimes = { new TimeHHMM(endTimes[0].Item1, endTimes[0].Item2), new TimeHHMM(endTimes[1].Item1, endTimes[1].Item2), new TimeHHMM(endTimes[2].Item1, endTimes[2].Item2), new TimeHHMM(endTimes[3].Item1, endTimes[3].Item2), new TimeHHMM(endTimes[4].Item1, endTimes[4].Item2) }; /** Nominal AddClass() Scenarios */ result = nominalTestStudent.AddClass(classNames[0], classStartTimes[0], classEndTimes[0]); Assert.IsTrue(result); result = nominalTestStudent.AddClass(classNames[1], startTimes[1].Item1, startTimes[1].Item2, 50); Assert.IsTrue(result); result = nominalTestStudent.AddClass(classNames[2], startTimes[2].Item1, startTimes[2].Item2, endTimes[2].Item1, endTimes[2].Item2); Assert.IsTrue(result); result = nominalTestStudent.AddClass(classNames[3], classStartTimes[3], 50); Assert.IsTrue(result); result = nominalTestStudent.AddClass(new ScheduleItem(classNames[4], classStartTimes[4], classEndTimes[4])); Assert.IsTrue(result); /** Failure AddClass() Scenarios */ result = failTestStudent.AddClass("", classStartTimes[0], classEndTimes[0]); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[0], null, classEndTimes[0]); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[0], classStartTimes[0], null); Assert.IsFalse(result); result = failTestStudent.AddClass("", startTimes[1].Item1, startTimes[1].Item2, 50); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[1], -1, startTimes[1].Item2, 50); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[1], 24, startTimes[1].Item2, 50); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[1], startTimes[1].Item1, -1, 50); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[1], startTimes[1].Item1, 60, 50); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[1], startTimes[1].Item1, startTimes[1].Item2, 0); Assert.IsFalse(result); result = failTestStudent.AddClass("", startTimes[2].Item1, startTimes[2].Item2, endTimes[2].Item1, endTimes[2].Item2); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[2], -1, startTimes[2].Item2, endTimes[2].Item1, endTimes[2].Item2); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[2], 24, startTimes[2].Item2, endTimes[2].Item1, endTimes[2].Item2); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[2], startTimes[2].Item1, -1, endTimes[2].Item1, endTimes[2].Item2); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[2], startTimes[2].Item1, 60, endTimes[2].Item1, endTimes[2].Item2); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[2], startTimes[2].Item1, startTimes[2].Item2, -1, endTimes[2].Item2); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[2], startTimes[2].Item1, startTimes[2].Item2, 24, endTimes[2].Item2); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[2], startTimes[2].Item1, startTimes[2].Item2, endTimes[2].Item1, -1); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[2], startTimes[2].Item1, startTimes[2].Item2, endTimes[2].Item1, 60); Assert.IsFalse(result); result = failTestStudent.AddClass("", classStartTimes[3], 50); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[3], null, 50); Assert.IsFalse(result); result = failTestStudent.AddClass(classNames[3], classStartTimes[3], 0); Assert.IsFalse(result); result = failTestStudent.AddClass(null); Assert.IsFalse(result); /** Schedule conflict failure */ TimeHHMM overlappingStart = classStartTimes[0] - 15; TimeHHMM overlappingEnd = classEndTimes[0] - 15; result = scheduleConflictStudent.AddClass(classNames[0], classStartTimes[0], classEndTimes[0]); //Add first class Assert.IsTrue(result); //Overlap start of class by 15m result = scheduleConflictStudent.AddClass("WillFailClass", overlappingStart, classEndTimes[0]); Assert.IsFalse(result); result = scheduleConflictStudent.AddClass("WillFailClass", overlappingStart.Hour, overlappingStart.Minute, 30); Assert.IsFalse(result); result = scheduleConflictStudent.AddClass("WillFailClass", overlappingStart.Hour, overlappingStart.Minute, endTimes[0].Item1, endTimes[0].Item2); Assert.IsFalse(result); result = scheduleConflictStudent.AddClass("WillFailClass", overlappingStart, 30); Assert.IsFalse(result); result = scheduleConflictStudent.AddClass(new ScheduleItem("WillFailClass", overlappingStart, 30)); Assert.IsFalse(result); //Overlap end of class by 15m result = scheduleConflictStudent.AddClass("WillFailClass", overlappingEnd, classEndTimes[0]); Assert.IsFalse(result); result = scheduleConflictStudent.AddClass("WillFailClass", overlappingEnd.Hour, overlappingEnd.Minute, 15); Assert.IsFalse(result); result = scheduleConflictStudent.AddClass("WillFailClass", overlappingEnd.Hour, overlappingEnd.Minute, endTimes[0].Item1, endTimes[0].Item2); Assert.IsFalse(result); result = scheduleConflictStudent.AddClass("WillFailClass", overlappingEnd, 15); Assert.IsFalse(result); result = scheduleConflictStudent.AddClass(new ScheduleItem("WillFailClass", overlappingEnd, 15)); Assert.IsFalse(result); /** Name conflict failure */ ScheduleItem duplicateClass = new ScheduleItem(classNames[0], classEndTimes[0] + 30, 30); //Add valid class to schedule result = nameConflictStudent.AddClass(classNames[0], classStartTimes[0], classEndTimes[0]); Assert.IsTrue(result); //Try to add duplicate class (same name, different time) result = nameConflictStudent.AddClass(duplicateClass); Assert.IsFalse(result); }
public void T003_TimeHHMM_Bounds() { int hour = 6; int minute = 30; /** Nominal Sets */ //Test setting valid Hour TimeHHMM theNominalTime = new TimeHHMM(0, 0); theNominalTime.Hour = hour; Assert.AreEqual <int>(hour, theNominalTime.Hour); Assert.AreEqual <int>(0, theNominalTime.Minute); //Test setting valid Minute theNominalTime.Minute = minute; Assert.AreEqual <int>(hour, theNominalTime.Hour); Assert.AreEqual <int>(minute, theNominalTime.Minute); /** Out of Bounds Sets */ //Test setting low OOB Hour TimeHHMM theOOBTime = new TimeHHMM(hour, minute); hour = -1; theOOBTime.Hour = hour; Assert.AreNotEqual <int>(hour, theOOBTime.Hour); Assert.AreEqual <int>(minute, theOOBTime.Minute); //Test setting minimum Hour hour = 0; theOOBTime.Hour = hour; Assert.AreEqual <int>(hour, theOOBTime.Hour); Assert.AreEqual <int>(minute, theOOBTime.Minute); //test setting high OOB Hour hour = 24; theOOBTime.Hour = hour; Assert.AreNotEqual <int>(hour, theOOBTime.Hour); Assert.AreEqual <int>(minute, theOOBTime.Minute); //Test setting maximum Hour hour = 23; theOOBTime.Hour = hour; Assert.AreEqual <int>(hour, theOOBTime.Hour); Assert.AreEqual <int>(minute, theOOBTime.Minute); //test setting low OOB minute minute = -1; theOOBTime.Minute = minute; Assert.AreEqual <int>(hour, theOOBTime.Hour); Assert.AreNotEqual <int>(minute, theOOBTime.Minute); //Test setting minimum Minute minute = 0; theOOBTime.Minute = minute; Assert.AreEqual <int>(hour, theOOBTime.Hour); Assert.AreEqual <int>(minute, theOOBTime.Minute); //test setting hight OOB minute minute = 60; theOOBTime.Minute = minute; Assert.AreEqual <int>(hour, theOOBTime.Hour); Assert.AreNotEqual <int>(minute, theOOBTime.Minute); //Test setting maximum Minute minute = 59; theOOBTime.Minute = minute; Assert.AreEqual <int>(hour, theOOBTime.Hour); Assert.AreEqual <int>(minute, theOOBTime.Minute); }