コード例 #1
0
        public void T002_TimeHHMM_Display()
        {
            /** Nominal Results */
            TimeHHMM theTestTime = new TimeHHMM(6, 30);

            Assert.AreEqual <string>("06:30", theTestTime.ToString());
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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;
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }