public async Task <string> GetLongestLastingHolidaySequanceAsync(int year) { RequestAllCountriesHolidays(year); var timeZones = await RequestContryZonesAsync(); var holidayIntervals = HolidayIntervalsProcessor.CalculateHolidayIntervals(timeZones, _dayOfTheYearsMap); var mergedHolidayIntervals = HolidayIntervalsProcessor.MergeHolidayIntervals(holidayIntervals); var longestHolidaySequance = mergedHolidayIntervals[mergedHolidayIntervals.Count - 1].End - mergedHolidayIntervals[mergedHolidayIntervals.Count - 1].Start; string formatedString = String.Format("The longest lasting sequence of holidays around the world is {0} hours", longestHolidaySequance); return(formatedString); }
public void MergeHolidayIntervals_ShouldMergedIntervals() { List <IHoldiayInterval> intervals = new List <IHoldiayInterval>() { new HoldiayInterval(25, 49), new HoldiayInterval(24, 48), new HoldiayInterval(23, 47) }; var mergedInterval = HolidayIntervalsProcessor.MergeHolidayIntervals(intervals); List <HoldiayInterval> expectedResult = new List <HoldiayInterval>() { new HoldiayInterval(23, 49) }; expectedResult.Should().BeEquivalentTo(mergedInterval); }