private void AssertDateTimeOffset( DateTime dateTime, Func <DateTime, DateTimeOffset> function, TimeZoneInfo timeZoneInfo, bool summerTime) { var dateTimeOffset = function.Invoke(dateTime); Assert.Equal(dateTime, dateTimeOffset.Date); var expected = timeZoneInfo.BaseUtcOffset.TotalMinutes; if (summerTime) { expected += timeZoneInfo.GetAdjustmentRuleTimeSpan(dateTime).TotalMinutes; } var actual = (new DateTimeOffset(dateTime, TimeSpan.Zero) - dateTimeOffset).TotalMinutes; Assert.Equal(expected, actual); }