public void GetOccurrenceForYear_Defaults_Epoch()
 {
     var offset = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, LocalTime.Midnight);
     var actual = offset.GetOccurrenceForYear(1970);
     var expected = new LocalDateTime(1970, 1, 1, 0, 0).ToLocalInstant();
     Assert.AreEqual(expected, actual);
 }
Esempio n. 2
0
        public void GetOccurrenceForYear_WednesdayBackward()
        {
            var offset   = new ZoneYearOffset(TransitionMode.Utc, 1, 15, (int)DayOfWeek.Wednesday, false, LocalTime.Midnight);
            var actual   = offset.GetOccurrenceForYear(1970);
            var expected = new LocalDateTime(1970, 1, 14, 0, 0).ToLocalInstant(); // 1970-01-15 was a Thursday

            Assert.AreEqual(expected, actual);
        }
Esempio n. 3
0
        public void GetOccurrenceForYear_LastSundayInOctober()
        {
            ZoneYearOffset offset   = new ZoneYearOffset(TransitionMode.Utc, 10, -1, (int)IsoDayOfWeek.Sunday, false, LocalTime.Midnight);
            var            actual   = offset.GetOccurrenceForYear(1996);
            var            expected = new LocalDateTime(1996, 10, 27, 0, 0).ToLocalInstant();

            Assert.AreEqual(expected, actual);
        }
Esempio n. 4
0
        public void GetOccurrenceForYear_ExactlyFeb29th_LeapYear()
        {
            ZoneYearOffset offset   = new ZoneYearOffset(TransitionMode.Utc, 2, 29, 0, false, LocalTime.Midnight);
            var            actual   = offset.GetOccurrenceForYear(2012);
            var            expected = new LocalDateTime(2012, 2, 29, 0, 0).ToLocalInstant();

            Assert.AreEqual(expected, actual);
        }
Esempio n. 5
0
        public void GetOccurrenceForYear_AtLeastFeb29th_LeapYear()
        {
            ZoneYearOffset offset   = new ZoneYearOffset(TransitionMode.Utc, 2, 29, (int)IsoDayOfWeek.Sunday, true, LocalTime.Midnight);
            var            actual   = offset.GetOccurrenceForYear(2012);
            var            expected = new LocalDateTime(2012, 3, 4, 0, 0).ToLocalInstant(); // March 4th is the first Sunday after 2012-02-29

            Assert.AreEqual(expected, actual);
        }
Esempio n. 6
0
        public void GetOccurrenceForYear_AtMostFeb29th_NotLeapYear()
        {
            ZoneYearOffset offset   = new ZoneYearOffset(TransitionMode.Utc, 2, 29, (int)IsoDayOfWeek.Sunday, false, LocalTime.Midnight);
            var            actual   = offset.GetOccurrenceForYear(2013);
            var            expected = new LocalDateTime(2013, 2, 24, 0, 0).ToLocalInstant(); // Feb 24th is the last Sunday is February 2013

            Assert.AreEqual(expected, actual);
        }
Esempio n. 7
0
        public void GetOccurrenceForYear_WithAddDay_December31st9999()
        {
            var offset   = new ZoneYearOffset(TransitionMode.Utc, 12, 31, 0, false, LocalTime.Midnight, true);
            var actual   = offset.GetOccurrenceForYear(9999);
            var expected = LocalInstant.AfterMaxValue;

            Assert.AreEqual(expected, actual);
        }
Esempio n. 8
0
        public void GetOccurrenceForYear_Year_1971()
        {
            var offset   = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, LocalTime.Midnight);
            var actual   = offset.GetOccurrenceForYear(1971);
            var expected = new LocalDateTime(1971, 1, 1, 0, 0).ToLocalInstant();

            Assert.AreEqual(expected, actual);
        }
Esempio n. 9
0
        public void GetOccurrenceForYear_Milliseconds()
        {
            var offset   = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, new LocalTime(0, 0, 0, 1));
            var actual   = offset.GetOccurrenceForYear(1970);
            var expected = new LocalDateTime(1970, 1, 1, 0, 0, 0, 1).ToLocalInstant();

            Assert.AreEqual(expected, actual);
        }
Esempio n. 10
0
        public void GetOccurrenceForYear_WithAddDay()
        {
            // Last Thursday in October, then add 24 hours. The last Thursday in October 2013 is the 31st, so
            // we should get the start of November 1st.
            var offset   = new ZoneYearOffset(TransitionMode.Utc, 10, -1, (int)IsoDayOfWeek.Thursday, false, LocalTime.Midnight, true);
            var actual   = offset.GetOccurrenceForYear(2013);
            var expected = new LocalDateTime(2013, 11, 1, 0, 0).ToLocalInstant();

            Assert.AreEqual(expected, actual);
        }
Esempio n. 11
0
        /// <summary>
        /// Gets the inclusive upper limit of time that this rule set applies to.
        /// </summary>
        /// <param name="savings">The daylight savings value during the final zone interval.</param>
        /// <returns>The <see cref="LocalInstant"/> of the upper limit for this rule set.</returns>
        internal Instant GetUpperLimit(Offset savings)
        {
            if (IsInfinite)
            {
                return(Instant.AfterMaxValue);
            }
            var localInstant = upperYearOffset.GetOccurrenceForYear(upperYear);
            var offset       = upperYearOffset.GetRuleOffset(StandardOffset, savings);

            return(localInstant.SafeMinus(offset));
        }
Esempio n. 12
0
 public void GetOccurrenceForYear_Milliseconds()
 {
     var offset = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, new LocalTime(0, 0, 0, 1));
     var actual = offset.GetOccurrenceForYear(1970);
     var expected = new LocalDateTime(1970, 1, 1, 0, 0, 0, 1).ToLocalInstant();
     Assert.AreEqual(expected, actual);
 }
Esempio n. 13
0
 public void GetOccurrenceForYear_ExactlyFeb29th_LeapYear()
 {
     ZoneYearOffset offset = new ZoneYearOffset(TransitionMode.Utc, 2, 29, 0, false, LocalTime.Midnight);
     var actual = offset.GetOccurrenceForYear(2012);
     var expected = new LocalDateTime(2012, 2, 29, 0, 0).ToLocalInstant();
     Assert.AreEqual(expected, actual);
 }
Esempio n. 14
0
 public void GetOccurrenceForYear_LastSundayInOctober()
 {
     ZoneYearOffset offset = new ZoneYearOffset(TransitionMode.Utc, 10, -1, (int)IsoDayOfWeek.Sunday, false, LocalTime.Midnight);
     var actual = offset.GetOccurrenceForYear(1996);
     var expected = new LocalDateTime(1996, 10, 27, 0, 0).ToLocalInstant();
     Assert.AreEqual(expected, actual);
 }
Esempio n. 15
0
 public void GetOccurrenceForYear_AtLeastFeb29th_LeapYear()
 {
     ZoneYearOffset offset = new ZoneYearOffset(TransitionMode.Utc, 2, 29, (int) IsoDayOfWeek.Sunday, true, LocalTime.Midnight);
     var actual = offset.GetOccurrenceForYear(2012);
     var expected = new LocalDateTime(2012, 3, 4, 0, 0).ToLocalInstant(); // March 4th is the first Sunday after 2012-02-29
     Assert.AreEqual(expected, actual);
 }
Esempio n. 16
0
 public void GetOccurrenceForYear_ExactlyFeb29th_NotLeapYear()
 {
     ZoneYearOffset offset = new ZoneYearOffset(TransitionMode.Utc, 2, 29, 0, false, LocalTime.Midnight);
     Assert.Throws<InvalidOperationException>(() => offset.GetOccurrenceForYear(2013));
 }
Esempio n. 17
0
 public void GetOccurrenceForYear_AtLeastFeb29th_NotLeapYear()
 {
     ZoneYearOffset offset = new ZoneYearOffset(TransitionMode.Utc, 2, 29, (int) IsoDayOfWeek.Sunday, true, LocalTime.Midnight);
     Assert.Throws<InvalidOperationException>(() => offset.GetOccurrenceForYear(2013));
 }
Esempio n. 18
0
        public void GetOccurrenceForYear_AtLeastFeb29th_NotLeapYear()
        {
            ZoneYearOffset offset = new ZoneYearOffset(TransitionMode.Utc, 2, 29, (int)IsoDayOfWeek.Sunday, true, LocalTime.Midnight);

            Assert.Throws <InvalidOperationException>(() => offset.GetOccurrenceForYear(2013));
        }
Esempio n. 19
0
        public void GetOccurrenceForYear_ExactlyFeb29th_NotLeapYear()
        {
            ZoneYearOffset offset = new ZoneYearOffset(TransitionMode.Utc, 2, 29, 0, false, LocalTime.Midnight);

            Assert.Throws <InvalidOperationException>(() => offset.GetOccurrenceForYear(2013));
        }
Esempio n. 20
0
 public void GetOccurrenceForYear_AtMostFeb29th_NotLeapYear()
 {
     ZoneYearOffset offset = new ZoneYearOffset(TransitionMode.Utc, 2, 29, (int) IsoDayOfWeek.Sunday, false, LocalTime.Midnight);
     var actual = offset.GetOccurrenceForYear(2013);
     var expected = new LocalDateTime(2013, 2, 24, 0, 0).ToLocalInstant(); // Feb 24th is the last Sunday is February 2013
     Assert.AreEqual(expected, actual);
 }
Esempio n. 21
0
 public void GetOccurrenceForYear_WithAddDay()
 {
     // Last Thursday in October, then add 24 hours. The last Thursday in October 2013 is the 31st, so
     // we should get the start of November 1st.
     var offset = new ZoneYearOffset(TransitionMode.Utc, 10, -1, (int) IsoDayOfWeek.Thursday, false, LocalTime.Midnight, true);
     var actual = offset.GetOccurrenceForYear(2013);
     var expected = new LocalDateTime(2013, 11, 1, 0, 0).ToLocalInstant();
     Assert.AreEqual(expected, actual);
 }
Esempio n. 22
0
 public void GetOccurrenceForYear_WithAddDay_December31st9999()
 {
     var offset = new ZoneYearOffset(TransitionMode.Utc, 12, 31, 0, false, LocalTime.Midnight, true);
     var actual = offset.GetOccurrenceForYear(9999);
     var expected = LocalInstant.AfterMaxValue;
     Assert.AreEqual(expected, actual);
 }
Esempio n. 23
0
 public void GetOccurrenceForYear_WednesdayBackward()
 {
     var offset = new ZoneYearOffset(TransitionMode.Utc, 1, 15, (int)DayOfWeek.Wednesday, false, LocalTime.Midnight);
     var actual = offset.GetOccurrenceForYear(1970);
     var expected = new LocalDateTime(1970, 1, 14, 0, 0).ToLocalInstant(); // 1970-01-15 was a Thursday
     Assert.AreEqual(expected, actual);
 }