public void PreviousTwice_LastYear()
        {
            var        januaryFirstMidnight = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, LocalTime.Midnight);
            var        recurrence           = new ZoneRecurrence("bob", Offset.Zero, januaryFirstMidnight, 1970, 1973);
            Transition?actual = recurrence.Previous(new Instant(NodaConstants.UnixEpoch.Ticks + (2 * TicksPerStandardYear)), Offset.Zero, Offset.Zero);

            actual = recurrence.Previous(actual.Value.Instant, Offset.Zero, Offset.Zero);
            Transition?expected = new Transition(NodaConstants.UnixEpoch, Offset.Zero, Offset.Zero);

            Assert.AreEqual(expected, actual);
        }
        public void Previous_BeforeFirstYear_null()
        {
            var        januaryFirstMidnight = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, LocalTime.Midnight);
            var        recurrence           = new ZoneRecurrence("bob", Offset.Zero, januaryFirstMidnight, 1970, 1972);
            Transition?actual   = recurrence.Previous(NodaConstants.UnixEpoch - Duration.Epsilon, Offset.Zero, Offset.Zero);
            Transition?expected = null;

            Assert.AreEqual(expected, actual);
        }
 public void Previous_BeforeFirstYear_null()
 {
     var januaryFirstMidnight = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, Offset.Zero);
     var recurrence = new ZoneRecurrence("bob", Offset.Zero, januaryFirstMidnight, 1970, 1972);
     Transition? actual = recurrence.Previous(Instant.UnixEpoch - Duration.One, Offset.Zero, Offset.Zero);
     Transition? expected = null;
     Assert.AreEqual(expected, actual);
 }
 public void PreviousTwice_LastYear()
 {
     var januaryFirstMidnight = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, Offset.Zero);
     var recurrence = new ZoneRecurrence("bob", Offset.Zero, januaryFirstMidnight, 1970, 1973);
     Transition? actual = recurrence.Previous(new Instant(Instant.UnixEpoch.Ticks + (2 * TicksPerStandardYear)), Offset.Zero, Offset.Zero);
     actual = recurrence.Previous(actual.Value.Instant, Offset.Zero, Offset.Zero);
     Transition? expected = new Transition(Instant.UnixEpoch, Offset.Zero, Offset.Zero);
     Assert.AreEqual(expected, actual);
 }