UnitTest1.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. namespace trgdfetgtr;
  2. public class UnitTest1
  3. {
  4. [Fact]
  5. public void GetPeriods_TimeFrom_Return7And21And2Periods()
  6. {
  7. //возвращает 7 периодов
  8. TimeSpan[] startTimes = { TimeSpan.FromHours(9), TimeSpan.FromHours(10.5), TimeSpan.FromHours(12), new TimeSpan(15, 30, 0), new TimeSpan(17, 0, 0) };
  9. int[] durations = { 60, 60, 20, 10, 30 };
  10. var test = Calculations.AvailablePeriods(startTimes, durations, TimeSpan.FromHours(8), TimeSpan.FromHours(18), 40);
  11. Assert.Equal(7, test.Length);
  12. //возвращает 21 период
  13. TimeSpan[] startTimes2 = { TimeSpan.FromHours(10), TimeSpan.FromHours(11), TimeSpan.FromHours(15), new TimeSpan(15, 30, 0), new TimeSpan(16, 50, 0) };
  14. int[] durations2 = { 60, 30, 10, 10, 40 };
  15. var test2 = Calculations.AvailablePeriods(startTimes2, durations2, TimeSpan.FromHours(8), TimeSpan.FromHours(18), 20);
  16. Assert.Equal(21, test2.Length);
  17. //вовзращает 2 периода
  18. TimeSpan[] startTimes3 = { TimeSpan.FromHours(8), TimeSpan.FromHours(10), TimeSpan.FromHours(12), new TimeSpan(13, 30, 0), TimeSpan.FromHours(14),
  19. new TimeSpan(16, 50, 0), new TimeSpan(17, 20, 0) };
  20. int[] durations3 = { 60, 25, 15, 50, 40, 15, 30 };
  21. var test3 = Calculations.AvailablePeriods(startTimes3, durations3, TimeSpan.FromHours(8), TimeSpan.FromHours(18), 90);
  22. Assert.Equal(2, test3.Length);
  23. }
  24. [Fact]
  25. public void GetAvailablePeriods_NoBusyRanges_Return0Periods()
  26. {
  27. //пусто(возвращает 0 периодов)
  28. TimeSpan[] startTimes = { TimeSpan.FromHours(8) };
  29. int[] durations = { 60 };
  30. var test = Calculations.AvailablePeriods(startTimes, durations, TimeSpan.FromHours(8), TimeSpan.FromHours(9.5), 90);
  31. Assert.Empty(test);
  32. }
  33. }