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);
        }
示例#2
0
        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);
        }