Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Ical.Net.Benchmarks/ApplicationWorkflows.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public List<Occurrence> SingleThreaded()
return _manyCalendars
.SelectMany(Calendar.Load<Calendar>)
.SelectMany(c => c.Events)
.SelectMany(e => e.GetOccurrences(_searchStart, _searchEnd))
.SelectMany(e => e.GetOccurrences(_searchStart).TakeWhile(p => p.Period.StartTime < _searchEnd))
.ToList();
}

Expand All @@ -49,7 +49,7 @@ public List<Occurrence> ParallelUponDeserialize()
.AsParallel()
.SelectMany(Calendar.Load<Calendar>)
.SelectMany(c => c.Events)
.SelectMany(e => e.GetOccurrences(_searchStart, _searchEnd))
.SelectMany(e => e.GetOccurrences(_searchStart).TakeWhile(p => p.Period.StartTime < _searchEnd))
.ToList();
}

Expand All @@ -60,7 +60,7 @@ public List<Occurrence> ParallelUponGetOccurrences()
.SelectMany(Calendar.Load<Calendar>)
.SelectMany(c => c.Events)
.AsParallel()
.SelectMany(e => e.GetOccurrences(_searchStart, _searchEnd))
.SelectMany(e => e.GetOccurrences(_searchStart).TakeWhile(p => p.Period.StartTime < _searchEnd))
.ToList();
}

Expand All @@ -72,7 +72,7 @@ public List<Occurrence> ParallelDeserializeSequentialGatherEventsParallelGetOccu
.SelectMany(Calendar.Load<Calendar>)
.AsSequential()
.SelectMany(c => c.Events)
.SelectMany(e => e.GetOccurrences(_searchStart, _searchEnd))
.SelectMany(e => e.GetOccurrences(_searchStart).TakeWhile(p => p.Period.StartTime < _searchEnd))
.ToList();
}
}
12 changes: 6 additions & 6 deletions Ical.Net.Benchmarks/OccurencePerfTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void MultipleEventsWithUntilOccurrencesSearchingByWholeCalendar()
{
var searchStart = _calendarFourEvents.Events.First().DtStart.AddYears(-1);
var searchEnd = _calendarFourEvents.Events.Last().DtStart.AddYears(1);
_ = _calendarFourEvents.GetOccurrences(searchStart, searchEnd);
_ = _calendarFourEvents.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd);
}

[Benchmark]
Expand All @@ -44,7 +44,7 @@ public void MultipleEventsWithUntilOccurrences()
var searchStart = _calendarFourEvents.Events.First().DtStart.AddYears(-1);
var searchEnd = _calendarFourEvents.Events.Last().DtStart.AddYears(1);
_ = _calendarFourEvents.Events
.SelectMany(e => e.GetOccurrences(searchStart, searchEnd))
.SelectMany(e => e.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd))
.ToList();
}

Expand All @@ -55,7 +55,7 @@ public void MultipleEventsWithUntilOccurrencesEventsAsParallel()
var searchEnd = _calendarFourEvents.Events.Last().DtStart.AddYears(1).AddDays(10);
_ = _calendarFourEvents.Events
.AsParallel()
.SelectMany(e => e.GetOccurrences(searchStart, searchEnd))
.SelectMany(e => e.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd))
.ToList();
}

Expand Down Expand Up @@ -113,7 +113,7 @@ public void MultipleEventsWithCountOccurrencesSearchingByWholeCalendar()
var calendar = GetFourCalendarEventsWithCountRule();
var searchStart = calendar.Events.First().DtStart.AddYears(-1);
var searchEnd = calendar.Events.Last().DtStart.AddYears(1);
_ = calendar.GetOccurrences(searchStart, searchEnd);
_ = calendar.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd);
}

[Benchmark]
Expand All @@ -123,7 +123,7 @@ public void MultipleEventsWithCountOccurrences()
var searchStart = calendar.Events.First().DtStart.AddYears(-1);
var searchEnd = calendar.Events.Last().DtStart.AddYears(1);
_ = calendar.Events
.SelectMany(e => e.GetOccurrences(searchStart, searchEnd))
.SelectMany(e => e.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd))
.ToList();
}

Expand All @@ -135,7 +135,7 @@ public void MultipleEventsWithCountOccurrencesEventsAsParallel()
var searchEnd = calendar.Events.Last().DtStart.AddYears(1).AddDays(10);
_ = calendar.Events
.AsParallel()
.SelectMany(e => e.GetOccurrences(searchStart, searchEnd))
.SelectMany(e => e.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd))
.ToList();
}

Expand Down
4 changes: 2 additions & 2 deletions Ical.Net.Benchmarks/ThroughputTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ rsion 08.00.0681.000"">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
var calendarEvent = calendar.Events.First();
var searchStart = new CalDateTime(2009, 06, 20);
var searchEnd = new CalDateTime(2011, 06, 23);
var occurrences = calendarEvent.GetOccurrences(searchStart, searchEnd);
var occurrences = calendarEvent.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd);
}

[Benchmark]
Expand Down Expand Up @@ -133,6 +133,6 @@ rsion 08.00.0681.000"">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
var calendarEvent = calendar.Events.First();
var searchStart = new CalDateTime(2009, 06, 20);
var searchEnd = new CalDateTime(2011, 06, 23);
var occurrences = calendarEvent.GetOccurrences(searchStart, searchEnd);
var occurrences = calendarEvent.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd);
}
}
8 changes: 4 additions & 4 deletions Ical.Net.Tests/DeserializationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ public void Bug2938007()
Assert.That(evt.End.HasTime, Is.EqualTo(true));
});

foreach (var o in evt.GetOccurrences(new CalDateTime(2010, 1, 17, 0, 0, 0), new CalDateTime(2010, 2, 1, 0, 0, 0)))
foreach (var o in evt.GetOccurrences(new CalDateTime(2010, 1, 17, 0, 0, 0)).TakeUntil(new CalDateTime(2010, 2, 1, 0, 0, 0)))
{
Assert.Multiple(() =>
{
Expand Down Expand Up @@ -328,7 +328,7 @@ public void Google1()

CalDateTime dtStart = new CalDateTime(2006, 12, 18);
CalDateTime dtEnd = new CalDateTime(2006, 12, 23);
var occurrences = iCal.GetOccurrences(dtStart, dtEnd).OrderBy(o => o.Period.StartTime).ToList();
var occurrences = iCal.GetOccurrences(dtStart).TakeUntil(dtEnd).ToList();

var dateTimes = new[]
{
Expand Down Expand Up @@ -495,7 +495,7 @@ public void Language4()
public void Outlook2007_LineFolds1()
{
var iCal = Calendar.Load(IcsFiles.Outlook2007LineFolds);
var events = iCal.GetOccurrences(new CalDateTime(2009, 06, 20), new CalDateTime(2009, 06, 22)).ToList();
var events = iCal.GetOccurrences(new CalDateTime(2009, 06, 20)).TakeUntil(new CalDateTime(2009, 06, 22)).ToList();
Assert.That(events, Has.Count.EqualTo(1));
}

Expand All @@ -504,7 +504,7 @@ public void Outlook2007_LineFolds2()
{
var longName = "The Exceptionally Long Named Meeting Room Whose Name Wraps Over Several Lines When Exported From Leading Calendar and Office Software Application Microsoft Office 2007";
var iCal = Calendar.Load(IcsFiles.Outlook2007LineFolds);
var events = iCal.GetOccurrences<CalendarEvent>(new CalDateTime(2009, 06, 20), new CalDateTime(2009, 06, 22)).OrderBy(o => o.Period.StartTime).ToList();
var events = iCal.GetOccurrences<CalendarEvent>(new CalDateTime(2009, 06, 20)).TakeUntil(new CalDateTime(2009, 06, 22)).ToList();
Assert.That(((CalendarEvent)events[0].Source).Location, Is.EqualTo(longName));
}

Expand Down
8 changes: 4 additions & 4 deletions Ical.Net.Tests/DocumentationExamples.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public void Daily_Test()
// July 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
var searchStart = new CalDateTime(2016, 07, 20);
var searchEnd = new CalDateTime(2016, 08, 05);
var occurrences = calendar.GetOccurrences(searchStart, searchEnd).ToList();
var occurrences = calendar.GetOccurrences(searchStart).TakeUntil(searchEnd).ToList();
Assert.That(occurrences, Has.Count.EqualTo(12));
}

Expand All @@ -65,7 +65,7 @@ public void EveryOtherTuesdayUntilTheEndOfTheYear_Test()
// The first Tuesday is July 5. There should be 13 in total
var searchStart = new CalDateTime(2010, 01, 01);
var searchEnd = new CalDateTime(2016, 12, 31);
var tuesdays = vEvent.GetOccurrences(searchStart, searchEnd).ToList();
var tuesdays = vEvent.GetOccurrences(searchStart).TakeUntil(searchEnd).ToList();

Assert.That(tuesdays, Has.Count.EqualTo(13));
}
Expand Down Expand Up @@ -93,7 +93,7 @@ public void FourthThursdayOfNovember_Tests()

var searchStart = new CalDateTime(2000, 01, 01);
var searchEnd = new CalDateTime(2017, 01, 01);
var usThanksgivings = vEvent.GetOccurrences(searchStart, searchEnd).ToList();
var usThanksgivings = vEvent.GetOccurrences(searchStart).TakeUntil(searchEnd).ToList();

Assert.That(usThanksgivings, Has.Count.EqualTo(17));
foreach (var thanksgiving in usThanksgivings)
Expand Down Expand Up @@ -126,7 +126,7 @@ public void DailyExceptSunday_Test()
// We are essentially counting all the days that aren't Sunday in 2016, so there should be 314
var searchStart = new CalDateTime(2015, 12, 31);
var searchEnd = new CalDateTime(2017, 01, 01);
var occurrences = calendar.GetOccurrences(searchStart, searchEnd).ToList();
var occurrences = calendar.GetOccurrences(searchStart).TakeUntil(searchEnd).ToList();
Assert.That(occurrences, Has.Count.EqualTo(314));
}
}
16 changes: 8 additions & 8 deletions Ical.Net.Tests/GetOccurrenceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public void WrongDurationTest()

var searchStart = new CalDateTime(2015, 12, 29);
var searchEnd = new CalDateTime(2017, 02, 10);
var occurrences = calendar.GetOccurrences(searchStart, searchEnd).OrderBy(o => o.Period.StartTime).ToList();
var occurrences = calendar.GetOccurrences(searchStart).TakeUntil(searchEnd).ToList();

var firstOccurrence = occurrences.First();
var firstStartCopy = firstStart.Copy();
Expand Down Expand Up @@ -81,8 +81,8 @@ public void SkippedOccurrenceOnWeeklyPattern()

var occurrences = RecurrenceUtil.GetOccurrences(
recurrable: vEvent,
periodStart: intervalStart,
periodEnd: intervalEnd);
periodStart: intervalStart)
.TakeUntil(intervalEnd);
var occurrenceSet = new HashSet<CalDateTime>(occurrences.Select(o => o.Period.StartTime));

Assert.That(occurrenceSet, Has.Count.EqualTo(evaluationsCount));
Expand Down Expand Up @@ -144,7 +144,7 @@ public void EnumerationChangedException()

var calendar = GetCalendars(ical);
var date = new CalDateTime(2016, 10, 11);
var occurrences = calendar.GetOccurrences(date, date.AddDays(1)).ToList();
var occurrences = calendar.GetOccurrences(date).TakeUntil(date.AddDays(1)).ToList();

//We really want to make sure this doesn't explode
Assert.That(occurrences, Has.Count.EqualTo(1));
Expand Down Expand Up @@ -208,7 +208,7 @@ public void GetOccurrencesWithRecurrenceIdShouldEnumerate()

var collection = Calendar.Load(ical);
var startCheck = new CalDateTime(2016, 11, 11);
var occurrences = collection.GetOccurrences<CalendarEvent>(startCheck, startCheck.AddMonths(1)).ToList();
var occurrences = collection.GetOccurrences<CalendarEvent>(startCheck).TakeUntil(startCheck.AddMonths(1)).ToList();

CalDateTime[] expectedStartDates = [
new CalDateTime("20161114T000100", "W. Europe Standard Time"),
Expand All @@ -223,7 +223,7 @@ public void GetOccurrencesWithRecurrenceIdShouldEnumerate()

// Specify end time that is between the original occurrence at 20161128T0001 and the overridden one at 20161128T0030.
// The overridden one shouldn't be returned, because it was replaced and the other one is in the future.
var occurrences2 = collection.GetOccurrences<CalendarEvent>(new CalDateTime(startCheck), new CalDateTime("20161128T002000", "W. Europe Standard Time"))
var occurrences2 = collection.GetOccurrences<CalendarEvent>(new CalDateTime(startCheck)).TakeUntil(new CalDateTime("20161128T002000", "W. Europe Standard Time"))
.ToList();

Assert.Multiple(() =>
Expand Down Expand Up @@ -262,10 +262,10 @@ public void GetOccurrencesWithRecurrenceId_DateOnly_ShouldEnumerate()

var collection = Calendar.Load(ical);
var startCheck = new CalDateTime(2023, 10, 1);
var occurrences = collection.GetOccurrences<CalendarEvent>(startCheck, startCheck.AddMonths(1))
var occurrences = collection.GetOccurrences<CalendarEvent>(startCheck).TakeUntil(startCheck.AddMonths(1))
.ToList();

var occurrences2 = collection.GetOccurrences<CalendarEvent>(new CalDateTime(startCheck), new CalDateTime(2023, 12, 31))
var occurrences2 = collection.GetOccurrences<CalendarEvent>(new CalDateTime(startCheck)).TakeUntil(new CalDateTime(2023, 12, 31))
.ToList();

CalDateTime[] expectedStartDates = [
Expand Down
12 changes: 6 additions & 6 deletions Ical.Net.Tests/MatchTimeZoneTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public void MatchTimeZone_LocalTimeUsaWithTimeZone()
var until = evt.RecurrenceRules.First().Until;

var expectedUntil = new CalDateTime(2023, 11, 05, 13, 00, 00, CalDateTime.UtcTzId);
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01), new CalDateTime(2023, 11, 06));
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01)).TakeUntil(new CalDateTime(2023, 11, 06));

Assert.Multiple(() =>
{
Expand Down Expand Up @@ -88,7 +88,7 @@ public void MatchTimeZone_LocalTimeAustraliaWithTimeZone(string inputUntil, int
System.Globalization.DateTimeStyles.AssumeUniversal |
System.Globalization.DateTimeStyles.AdjustToUniversal).AsCalDateTime();

var occurrences = evt.GetOccurrences(new CalDateTime(2024, 10, 01), new CalDateTime(2024, 10, 07));
var occurrences = evt.GetOccurrences(new CalDateTime(2024, 10, 01)).TakeUntil(new CalDateTime(2024, 10, 07));

Assert.Multiple(() =>
{
Expand Down Expand Up @@ -133,7 +133,7 @@ public void MatchTimeZone_UTCTime()
var until = evt.RecurrenceRules.First().Until;

var expectedUntil = new CalDateTime(2023, 11, 05, 09, 00, 00, CalDateTime.UtcTzId);
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01), new CalDateTime(2023, 11, 06));
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01)).TakeUntil(new CalDateTime(2023, 11, 06));

Assert.Multiple(() =>
{
Expand Down Expand Up @@ -166,7 +166,7 @@ public void MatchTimeZone_FloatingTime()
var until = evt.RecurrenceRules.First().Until;

var expectedUntil = new CalDateTime(2023, 11, 05, 09, 00, 00, null);
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01), new CalDateTime(2023, 11, 06));
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01)).TakeUntil(new CalDateTime(2023, 11, 06));

Assert.Multiple(() =>
{
Expand Down Expand Up @@ -200,7 +200,7 @@ public void MatchTimeZone_LocalTimeNoTimeZone()
var until = evt.RecurrenceRules.First().Until;

var expectedUntil = new CalDateTime(2023, 11, 05, 09, 00, 00, null);
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01), new CalDateTime(2023, 11, 06));
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01)).TakeUntil(new CalDateTime(2023, 11, 06));

Assert.Multiple(() =>
{
Expand Down Expand Up @@ -233,7 +233,7 @@ public void MatchTimeZone_DateOnly()
var until = evt.RecurrenceRules.First().Until;

var expectedUntil = new CalDateTime(2023, 11, 05);
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01), new CalDateTime(2023, 11, 06));
var occurrences = evt.GetOccurrences(new CalDateTime(2023, 11, 01)).TakeUntil(new CalDateTime(2023, 11, 06));

Assert.Multiple(() =>
{
Expand Down
8 changes: 4 additions & 4 deletions Ical.Net.Tests/ProgramTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ public void Merge1()

// Get occurrences for the first event
var occurrences = evt1.GetOccurrences(
new CalDateTime(1996, 1, 1),
new CalDateTime(2000, 1, 1)).OrderBy(o => o.Period.StartTime).ToList();
new CalDateTime(1996, 1, 1))
.TakeUntil(new CalDateTime(2000, 1, 1)).ToList();

var dateTimes = new[]
{
Expand Down Expand Up @@ -104,8 +104,8 @@ public void Merge1()

// Get occurrences for the 2nd event
occurrences = evt2.GetOccurrences(
new CalDateTime(1996, 1, 1),
new CalDateTime(1998, 4, 1)).OrderBy(o => o.Period.StartTime).ToList();
new CalDateTime(1996, 1, 1))
.TakeUntil(new CalDateTime(1998, 4, 1)).ToList();

var dateTimes1 = new[]
{
Expand Down
Loading
Loading