Exemplo n.º 1
0
        public void NextTwice_WednesdayForward()
        {
            ZoneYearOffset offset    = new ZoneYearOffset(TransitionMode.Utc, 10, 31, (int)IsoDayOfWeek.Wednesday, true, LocalTime.Midnight);
            var            actual    = offset.MakeInstant(2006, Offset.Zero, Offset.Zero); // Nov 1 2006
            long           baseTicks = actual.Ticks;

            actual = offset.Next(actual, Offset.Zero, Offset.Zero); // Oct 31 2007
            actual = offset.Next(actual, Offset.Zero, Offset.Zero); // Nov 5 2008
            var expected = new Instant(baseTicks + TicksPerStandardYear + TicksPerLeapYear + (4 * NodaConstants.TicksPerStandardDay));

            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 2
0
        public void NextTwice_Feb29_FourYears()
        {
            var  offset    = new ZoneYearOffset(TransitionMode.Utc, 2, 29, 0, true, LocalTime.Midnight);
            var  actual    = offset.MakeInstant(1972, Offset.Zero, Offset.Zero);
            long baseTicks = actual.Ticks;

            actual = offset.Next(actual, Offset.Zero, Offset.Zero);
            actual = offset.Next(actual, Offset.Zero, Offset.Zero);
            var expected = new Instant(baseTicks + (2 * ((3 * TicksPerStandardYear) + TicksPerLeapYear)));

            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 3
0
        public void NextTwice_JanOne()
        {
            var  offset    = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, LocalTime.Midnight);
            var  actual    = offset.MakeInstant(1970, Offset.Zero, Offset.Zero);
            long baseTicks = actual.Ticks;

            actual = offset.Next(actual, Offset.Zero, Offset.Zero);
            actual = offset.Next(actual, Offset.Zero, Offset.Zero);
            var expected = new Instant(baseTicks + (2 * TicksPerStandardYear));

            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 4
0
        public void Next_OneSecondBeforeJanOne()
        {
            var offset = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, LocalTime.Midnight);
            var actual = offset.MakeInstant(1970, Offset.Zero, Offset.Zero) - Duration.Epsilon;

            actual = offset.Next(actual, Offset.Zero, Offset.Zero);
            var expected = NodaConstants.UnixEpoch;

            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 5
0
        public void Next_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 instant      = Instant.FromUtc(2013, 10, 31, 12, 0);
            var expectedNext = Instant.FromUtc(2013, 11, 1, 0, 0);
            var actualNext   = offset.Next(instant, Offset.Zero, Offset.Zero);

            Assert.AreEqual(expectedNext, actualNext);
        }
Exemplo n.º 6
0
 public void NextTwice_WednesdayForward()
 {
     ZoneYearOffset offset = new ZoneYearOffset(TransitionMode.Utc, 10, 31, (int)IsoDayOfWeek.Wednesday, true, Offset.Zero);
     var actual = offset.MakeInstant(2006, Offset.Zero, Offset.Zero); // Nov 1 2006
     long baseTicks = actual.Ticks;
     actual = offset.Next(actual, Offset.Zero, Offset.Zero); // Oct 31 2007
     actual = offset.Next(actual, Offset.Zero, Offset.Zero); // Nov 5 2008
     var expected = new Instant(baseTicks + TicksPerStandardYear + TicksPerLeapYear + (4 * NodaConstants.TicksPerStandardDay));
     Assert.AreEqual(expected, actual);
 }
Exemplo n.º 7
0
 public void NextTwice_Feb29_FourYears()
 {
     var offset = new ZoneYearOffset(TransitionMode.Utc, 2, 29, 0, true, Offset.Zero);
     var actual = offset.MakeInstant(1972, Offset.Zero, Offset.Zero);
     long baseTicks = actual.Ticks;
     actual = offset.Next(actual, Offset.Zero, Offset.Zero);
     actual = offset.Next(actual, Offset.Zero, Offset.Zero);
     var expected = new Instant(baseTicks + (2 * ((3 * TicksPerStandardYear) + TicksPerLeapYear)));
     Assert.AreEqual(expected, actual);
 }
Exemplo n.º 8
0
 public void NextTwice_JanOne()
 {
     var offset = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, Offset.Zero);
     var actual = offset.MakeInstant(1970, Offset.Zero, Offset.Zero);
     long baseTicks = actual.Ticks;
     actual = offset.Next(actual, Offset.Zero, Offset.Zero);
     actual = offset.Next(actual, Offset.Zero, Offset.Zero);
     var expected = new Instant(baseTicks + (2 * TicksPerStandardYear));
     Assert.AreEqual(expected, actual);
 }
Exemplo n.º 9
0
 public void Next_OneSecondBeforeJanOne()
 {
     var offset = new ZoneYearOffset(TransitionMode.Utc, 1, 1, 0, true, Offset.Zero);
     var actual = offset.MakeInstant(1970, Offset.Zero, Offset.Zero) - Duration.One;
     actual = offset.Next(actual, Offset.Zero, Offset.Zero);
     var expected = Instant.UnixEpoch;
     Assert.AreEqual(expected, actual);
 }