public void IsTransitionFrom_laterInstantAndUnequalStandardOffset_true()
        {
            var newValue = new ZoneTransition(NodaConstants.UnixEpoch + Duration.Epsilon, "abc", Offset.Zero, Offset.Zero);
            var oldValue = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.MaxValue, Offset.Zero);

            Assert.True(newValue.IsTransitionFrom(oldValue));
        }
        public void IsTransitionFrom_earlierInstantAndUnequalSavings_false()
        {
            var newValue = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.Zero, Offset.Zero);
            var oldValue = new ZoneTransition(NodaConstants.UnixEpoch + Duration.Epsilon, "abc", Offset.Zero, Offset.MaxValue);

            Assert.False(newValue.IsTransitionFrom(oldValue));
        }
        public void IsTransitionFrom_laterInstant_false()
        {
            var newValue = new ZoneTransition(NodaConstants.UnixEpoch + Duration.Epsilon, "abc", Offset.Zero, Offset.Zero);
            var oldValue = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.Zero, Offset.Zero);

            Assert.False(newValue.IsTransitionFrom(oldValue));
        }
示例#4
0
        public void IsTransitionFrom_laterInstantAndEqualButOppositeStandardAndSavings_false()
        {
            var newValue = new ZoneTransition(NodaConstants.UnixEpoch + Duration.Epsilon, "abc", Offset.FromHours(1), Offset.Zero);
            var oldValue = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.Zero, Offset.FromHours(1));

            Assert.False(newValue.IsTransitionFrom(oldValue));
        }
示例#5
0
        public void IsTransitionFrom_unequalName_false()
        {
            var newValue = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.Zero, Offset.Zero);
            var oldValue = new ZoneTransition(NodaConstants.UnixEpoch, "qwe", Offset.Zero, Offset.Zero);

            Assert.False(newValue.IsTransitionFrom(oldValue));
        }
示例#6
0
        public void IsTransitionFrom_identity_false()
        {
            var value = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.Zero, Offset.Zero);

            Assert.False(value.IsTransitionFrom(value));
        }
示例#7
0
        public void IsTransitionFrom_null_true()
        {
            var value = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.Zero, Offset.Zero);

            Assert.True(value.IsTransitionFrom(null));
        }
 public void IsTransitionFrom_equalObject_false()
 {
     var newValue = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero);
     var oldValue = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero);
     Assert.False(newValue.IsTransitionFrom(oldValue));
 }
        /// <summary>
        /// Adds the given transition to the transition list if it represents a new transition.
        /// </summary>
        /// <param name="transitions">The list of <see cref="ZoneTransition"/> to add to.</param>
        /// <param name="transition">The transition to add.</param>
        /// <returns><c>true</c> if the transition was added.</returns>
        private static bool AddTransition(IList<ZoneTransition> transitions, ZoneTransition transition)
        {
            int transitionCount = transitions.Count;
            if (transitionCount == 0)
            {
                transitions.Add(transition);
                return true;
            }

            ZoneTransition lastTransition = transitions[transitionCount - 1];
            if (!transition.IsTransitionFrom(lastTransition))
            {
                return false;
            }

            // If local time of new transition is same as last local time, just replace last
            // transition with new one.
            LocalInstant lastLocal = lastTransition.Instant.Plus(lastTransition.WallOffset);
            LocalInstant newLocal = transition.Instant.Plus(transition.WallOffset);

            if (newLocal != lastLocal)
            {
                transitions.Add(transition);
                return true;
            }

            transitions.RemoveAt(transitionCount - 1);
            return AddTransition(transitions, transition);
        }
示例#10
0
 public void IsTransitionFrom_null_true()
 {
     var value = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero);
     Assert.True(value.IsTransitionFrom(null));
 }
示例#11
0
 public void IsTransitionFrom_identity_false()
 {
     var value = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero);
     Assert.False(value.IsTransitionFrom(value));
 }
示例#12
0
 public void IsTransitionFrom_laterInstantAndUnequalNameAndSavings_true()
 {
     var newValue = new ZoneTransition(Instant.UnixEpoch + Duration.One, "abc", Offset.Zero, Offset.Zero);
     var oldValue = new ZoneTransition(Instant.UnixEpoch, "qwe", Offset.Zero, Offset.MaxValue);
     Assert.True(newValue.IsTransitionFrom(oldValue));
 }
示例#13
0
 public void IsTransitionFrom_laterInstantAndEqualButOppositeStandardAndSavings_false()
 {
     var newValue = new ZoneTransition(Instant.UnixEpoch + Duration.One, "abc", Offset.FromHours(1), Offset.Zero);
     var oldValue = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.FromHours(1));
     Assert.False(newValue.IsTransitionFrom(oldValue));
 }
示例#14
0
 public void IsTransitionFrom_laterInstant_false()
 {
     var newValue = new ZoneTransition(Instant.UnixEpoch + Duration.One, "abc", Offset.Zero, Offset.Zero);
     var oldValue = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero);
     Assert.False(newValue.IsTransitionFrom(oldValue));
 }
示例#15
0
 public void IsTransitionFrom_earlierInstantAndUnequalName_false()
 {
     var newValue = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero);
     var oldValue = new ZoneTransition(Instant.UnixEpoch + Duration.One, "qwe", Offset.Zero, Offset.Zero);
     Assert.False(newValue.IsTransitionFrom(oldValue));
 }
示例#16
0
 public void ISTransitionFrom_unequalStandardOffset_false()
 {
     var newValue = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero);
     var oldValue = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.MaxValue, Offset.Zero);
     Assert.False(newValue.IsTransitionFrom(oldValue));
 }