public void CompareTo_SameStartSameLength_AlphabeticalAccordingToCourseName() { unit1 = new TimeUnit(start, end); unit1.AssignedCourse = new Course("A", 10, 10, null); unit2 = new TimeUnit(start, end); unit2.AssignedCourse = new Course("Z", 10, 10, null); Assert.Greater(0, unit1.CompareTo(unit2)); }
public void MergeUnits_2ConsecutiveUnits1Not_OneUnit() { unit3 = new TimeUnit(end, end.AddMinutes(1)); units1 = new SortedSet<TimeUnit>() { unit1, unit2, unit3 }; units1.MergeUnits(); Assert.AreEqual(2, units1.Count); TimeUnit result = new TimeUnit(start, point2); Assert.IsTrue(units1.Contains(result)); Assert.IsTrue(units1.Contains(unit3)); }
public void CompareTo_SameStart_ShortestFirst() { unit1 = new TimeUnit(start, end); unit2 = new TimeUnit(start, end.AddHours(1)); Assert.Greater(0, unit1.CompareTo(unit2)); }
public void CompareTo_LaterStart_LaterOrder() { unit1 = new TimeUnit(start, end); unit2 = new TimeUnit(start.AddMinutes(1), end); Assert.Greater(0, unit1.CompareTo(unit2)); }
public void Shorten_Test() { unit1 = new TimeUnit(Extensions.DateTimeCreator(0, 8, 30), Extensions.DateTimeCreator(0, 9, 30)); unit1.Shorten(30); Assert.AreEqual(30, unit1.Duration()); }
public void OverlapsWith_GapBetweenUnits_No() { TimeUnit unit2 = new TimeUnit(end.AddHours(1), end.AddDays(1)); Assert.IsFalse(unit2.OverlapsWith(unit1)); Assert.IsFalse(unit1.OverlapsWith(unit2)); }
public void OverlapsWith_Completely_Yes() { TimeUnit unit2 = new TimeUnit(start, end); Assert.IsTrue(unit1.OverlapsWith(unit2)); Assert.IsTrue(unit2.OverlapsWith(unit1)); }
public void IsConsecutiveWith_ReversedOrder_ReturnFalse() { TimeUnit unit2 = new TimeUnit(end, end.AddDays(1)); Assert.IsFalse(unit1.IsConsecutiveWith(unit2)); }
public bool Merge(TimeUnit other) { bool result = false; if(other.IsConsecutiveWith(this)) { End = other.End; result = true; } return result; }
// Follows the other TimeUnit consecutively (the end of the other unit and the start of this unit are equal) public bool IsConsecutiveWith(TimeUnit other) { bool result = false; // end2 == start1 if (Start.CompareTo(other.End) == 0) { result = true; } return result; }
public bool Equals(TimeUnit other) { if (other == null) { return false; } if (!Start.ToString("HH:mm:ss").Equals(other.Start.ToString("HH:mm:ss"))) { return false; } if (!End.ToString("HH:mm:ss").Equals(other.End.ToString("HH:mm:ss"))) { return false; } if (AssignedCourse != null) { if (!AssignedCourse.Equals(other.AssignedCourse)) { return false; } } else if (other.AssignedCourse != null) { return false; } return true; }
public SplitResult(TimeUnit first, TimeUnit second) : this() { First = first; Second = second; }
public object Clone() { TimeUnit unit = new TimeUnit(Start, End); unit.AssignedCourse = AssignedCourse == null ? null : (Course) AssignedCourse.Clone(); return unit; }
public void MergeUnits_NoConsecutiveUnits_Pass() { unit1 = new TimeUnit(start, start.AddSeconds(1)); unit2 = new TimeUnit(point1, point1.AddSeconds(1)); unit3 = new TimeUnit(end, end.AddSeconds(1)); units1 = new SortedSet<TimeUnit>() { unit1, unit2, unit3 }; units1.MergeUnits(); Assert.AreEqual(3, units1.Count); }
public void init() { start = DateTime.Now; end = start.AddHours(5); unit1 = new TimeUnit(start, end); unit2 = new TimeUnit(start, end); }
public void IsConsecutiveWith_GapBetweenTimeUnits_ReturnFalse() { TimeUnit unit2 = new TimeUnit(end.AddMilliseconds(1), end.AddDays(1)); Assert.IsFalse(unit2.IsConsecutiveWith(unit1)); }
// Overlaps with other TimeUnit (end or start dates may be equal) public bool OverlapsWith(TimeUnit other) { bool result = false; result = true; // end2 <= start1 if (Start.CompareTo(other.End) >= 0) { result = false; } // end1 <= start2 else if (End.CompareTo(other.Start) <= 0) { result = false; } return result; }
public void IsConsecutiveWith_Yes_ReturnTrue() { TimeUnit unit2 = new TimeUnit(end, end.AddDays(1)); Assert.IsTrue(unit2.IsConsecutiveWith(unit1)); }
// Splits the TimeUnit to return two other TimeUnits of which the first is equal to the requested duration // and the second is the remainder public SplitResult Split(int duration) { if (duration > Duration()) { throw new ArgumentException("parameter must be lower than or equal than the TimeUnit's duration"); } else if (duration < Duration()) { TimeUnit first = new TimeUnit(Start, Start.AddMinutes(duration)); TimeUnit second = new TimeUnit(first.End, End); return new SplitResult(first, second); } else { return new SplitResult(this, null); } }
public void OverlapsWith_ConsecutiveUnits_No() { TimeUnit unit2 = new TimeUnit(end, end.AddDays(1)); Assert.IsFalse(unit2.OverlapsWith(unit1)); Assert.IsFalse(unit1.OverlapsWith(unit2)); }
public void Constructor_StartNotBeforeEnd_ArgumentException() { DateTime end = DateTime.Now; DateTime start = end.AddDays(1); TimeUnit unit = new TimeUnit(start, end); }
public void OverlapsWith_Partly_Yes() { TimeUnit unit2 = new TimeUnit(start.AddMinutes(1), end.AddMinutes(1)); Assert.IsTrue(unit2.OverlapsWith(unit1)); Assert.IsTrue(unit1.OverlapsWith(unit2)); }
public void Contains_Test() { SortedSet<TimeUnit> units = new SortedSet<TimeUnit>(); units.Add(unit1); Assert.IsTrue(units.Contains(unit1)); unit2 = new TimeUnit(unit1.Start, unit1.Start.AddHours(8)); Assert.IsFalse(units.Contains(unit2)); }
public void CompareTo_8h30Before10h00_Yes() { unit1 = new TimeUnit(Extensions.DateTimeCreator(0, 8, 30), Extensions.DateTimeCreator(0, 12, 0)); unit2 = new TimeUnit(Extensions.DateTimeCreator(0, 10, 0), Extensions.DateTimeCreator(0, 12, 0)); Assert.Greater(0, unit1.CompareTo(unit2)); }
public void Equals_EverythingDifferentNoCourse_No() { unit2 = new TimeUnit(Extensions.DateTimeCreator(0, 8, 30), Extensions.DateTimeCreator(0, 9, 0)); Assert.AreNotEqual(unit1, unit2); }
public void GetHashCode_Clone_SameHashCode() { unit1 = new TimeUnit(start, end); unit1.AssignedCourse = new Course("Test", 10, 10, new List<Resource>() { new Resource("TV") }); TimeUnit unit = (TimeUnit)unit1.Clone(); Assert.AreEqual(unit, unit1); Assert.AreEqual(unit.GetHashCode(), unit1.GetHashCode()); }
public void GetHashCode_DifferentFields_DifferentHashCode() { unit1 = new TimeUnit(start, end); unit1.AssignedCourse = new Course("Test", 10, 10, new List<Resource>() { new Resource("TV") }); unit2 = new TimeUnit(start.AddMinutes(1), end.AddMinutes(1)); unit2.AssignedCourse = new Course("T", 10, 10, new List<Resource>() { new Resource("TV") }); Assert.AreNotEqual(unit1, unit2); Assert.AreNotEqual(unit1.GetHashCode(), unit2.GetHashCode()); }
public void Constructor_StartEqualsEnd_Pass() { end = start; unit1 = new TimeUnit(start, end); Assert.AreEqual(end, unit1.End); Assert.AreEqual(start, unit1.Start); }
public void init() { start = Extensions.DateTimeCreator(0, 8, 30); point1 = Extensions.DateTimeCreator(0, 9, 0); point2 = Extensions.DateTimeCreator(0, 9, 30); end = Extensions.DateTimeCreator(0, 10, 0); unit1 = new TimeUnit(start, point1); unit2 = new TimeUnit(point1, point2); unit3 = new TimeUnit(point2, end); units1 = new SortedSet<TimeUnit>() { unit1, unit2, unit3 }; units2 = new SortedSet<TimeUnit>(); list1 = new List<int>() { 1, 2, 3, 4 }; list2 = new List<int>() { 1, 2, 3, 4 }; }