Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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