using System; using NUnit.Framework; namespace ClassLibrary.Test { public class Tests { [TestCaseSource(nameof(TestData))] public void DataAssertTest( TimeSpan[] startTimes, int[] durations, TimeSpan beginWorkingTime, TimeSpan endWorkingTime, int consultationTime, string[] expected) { var result = Calculations.AvailablePeriods(startTimes, durations, beginWorkingTime, endWorkingTime, consultationTime); Assert.AreEqual(expected.Length, result.Length); for (int i = 0; i < expected.Length; i++) { Assert.AreEqual(expected[i], result[i]); } } public static object[] TestData = new object[] { new object[] { new TimeSpan[] { TimeSpan.FromHours(10) }, new int[] { 60 }, TimeSpan.FromHours(9), TimeSpan.FromHours(12), 30, new string[] { "09:00-09:30", "09:30-10:00", "11:00-11:30", "11:30-12:00" } }, new object[] { new TimeSpan[] { }, new int[] { }, TimeSpan.FromHours(8), TimeSpan.FromHours(9), 20, new string[] { "08:00-08:20", "08:20-08:40", "08:40-09:00" } }, new object[] { new TimeSpan[] { TimeSpan.FromHours(9) }, new int[] { 480 }, TimeSpan.FromHours(9), TimeSpan.FromHours(17), 30, new string[] { } }, new object[] { new TimeSpan[] { TimeSpan.FromHours(10), TimeSpan.FromHours(12) }, new int[] { 60, 60 }, TimeSpan.FromHours(9), TimeSpan.FromHours(14), 30, new string[] { "09:00-09:30", "09:30-10:00", "11:00-11:30", "11:30-12:00", "13:00-13:30", "13:30-14:00" } }, new object[] { new TimeSpan[] { }, new int[] { }, TimeSpan.FromHours(9), TimeSpan.FromHours(10), 15, new string[] { "09:00-09:15", "09:15-09:30", "09:30-09:45", "09:45-10:00" } }, new object[] { new TimeSpan[] { TimeSpan.FromHours(10) }, new int[] { 60 }, TimeSpan.FromHours(15), TimeSpan.FromHours(17), 30, new string[] { "15:00-15:30", "15:30-16:00", "16:00-16:30", "16:30-17:00" } }, new object[] { new TimeSpan[] { }, new int[] { }, TimeSpan.FromHours(9), TimeSpan.FromHours(12), 45, new string[] { "09:00-09:45", "09:45-10:30", "10:30-11:15", "11:15-12:00" } }, new object[] { new TimeSpan[] { }, new int[] { }, TimeSpan.FromHours(8), TimeSpan.FromHours(11), 20, new string[] { "08:00-08:20", "08:20-08:40", "08:40-09:00", "09:00-09:20", "09:20-09:40", "09:40-10:00", "10:00-10:20", "10:20-10:40", "10:40-11:00" } }, new object[] { new TimeSpan[] { }, new int[] { }, TimeSpan.FromHours(9), TimeSpan.FromHours(10), 30, new string[] { "09:00-09:30", "09:30-10:00" } }, new object[] { new TimeSpan[] { TimeSpan.FromHours(10) }, new int[] { 60 }, TimeSpan.FromHours(9), TimeSpan.FromHours(12), 20, new string[] { "09:00-09:20", "09:20-09:40", "09:40-10:00", "11:00-11:20", "11:20-11:40", "11:40-12:00" } } }; } }