|
@@ -0,0 +1,40 @@
|
|
|
+using Lib;
|
|
|
+
|
|
|
+namespace LibTests
|
|
|
+{
|
|
|
+
|
|
|
+ public class LibraryTesting
|
|
|
+ {
|
|
|
+ [Fact]
|
|
|
+ public void GetPeriods_TimeFrom_Return7And21And2Periods()
|
|
|
+ {
|
|
|
+ TimeSpan[] startTimes = { TimeSpan.FromHours(9), TimeSpan.FromHours(10.5), TimeSpan.FromHours(12), new TimeSpan(15, 30, 0), new TimeSpan(17, 0, 0) };
|
|
|
+ int[] durations = { 60, 60, 20, 10, 30 };
|
|
|
+ var test = Calculations.AvailablePeriods(startTimes, durations, TimeSpan.FromHours(8), TimeSpan.FromHours(18), 40);
|
|
|
+ Assert.Equal(7, test.Length);
|
|
|
+
|
|
|
+ TimeSpan[] startTimes2 = { TimeSpan.FromHours(10), TimeSpan.FromHours(11), TimeSpan.FromHours(15), new TimeSpan(15, 30, 0), new TimeSpan(16, 50, 0) };
|
|
|
+ int[] durations2 = { 60, 30, 10, 10, 40 };
|
|
|
+ var test2 = Calculations.AvailablePeriods(startTimes2, durations2, TimeSpan.FromHours(8), TimeSpan.FromHours(18), 20);
|
|
|
+ Assert.Equal(21, test2.Length);
|
|
|
+
|
|
|
+ TimeSpan[] startTimes3 = { TimeSpan.FromHours(8), TimeSpan.FromHours(10), TimeSpan.FromHours(12), new TimeSpan(13, 30, 0), TimeSpan.FromHours(14),
|
|
|
+ new TimeSpan(16, 50, 0), new TimeSpan(17, 20, 0) };
|
|
|
+ int[] durations3 = { 60, 25, 15, 50, 40, 15, 30 };
|
|
|
+ var test3 = Calculations.AvailablePeriods(startTimes3, durations3, TimeSpan.FromHours(8), TimeSpan.FromHours(18), 90);
|
|
|
+ Assert.Equal(2, test3.Length);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void GetAvailablePeriods_NoBusyRanges_Return0Periods()
|
|
|
+ {
|
|
|
+ TimeSpan[] startTimes = { TimeSpan.FromHours(8) };
|
|
|
+ int[] durations = { 60 };
|
|
|
+
|
|
|
+ var test = Calculations.AvailablePeriods(startTimes, durations, TimeSpan.FromHours(8), TimeSpan.FromHours(9.5), 90);
|
|
|
+
|
|
|
+ Assert.Empty(test);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|