public void Construct_EndOfTime_Truncated() { const string name = "abc"; var instant = new Instant(Instant.MaxValue.Ticks + minusOneHour.TotalTicks); var actual = new ZoneTransition(instant, name, threeHours, threeHours); Assert.AreEqual(instant, actual.Instant, "Instant"); Assert.AreEqual(oneHour, actual.StandardOffset, "StandardOffset"); Assert.AreEqual(Offset.Zero, actual.Savings, "Savings"); }
public void IEquatableIComparable_Tests() { var value = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero); var equalValue = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero); var greaterValue = new ZoneTransition(Instant.MaxValue, "abc", Offset.Zero, Offset.Zero); TestHelper.TestEqualsClass(value, equalValue, greaterValue); TestHelper.TestCompareToClass(value, equalValue, greaterValue); }
public void Construct_Normal() { const string name = "abc"; var actual = new ZoneTransition(Instant.UnixEpoch, name, Offset.Zero, Offset.Zero); Assert.AreEqual(Instant.UnixEpoch, actual.Instant, "Instant"); Assert.AreEqual(name, actual.Name, "GetName"); Assert.AreEqual(Offset.Zero, actual.WallOffset, "WallOffset"); Assert.AreEqual(Offset.Zero, actual.StandardOffset, "StandardOffset"); }
public void IsTransitionFrom_identity_false() { var value = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.Zero, Offset.Zero); Assert.False(value.IsTransitionFrom(value)); }
public void IsTransitionFrom_null_throws() { var value = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.Zero, Offset.Zero); Assert.Throws <ArgumentNullException>(() => value.IsTransitionFrom(null !)); }
public void IsTransitionFrom_null_true() { var value = new ZoneTransition(NodaConstants.UnixEpoch, "abc", Offset.Zero, Offset.Zero); Assert.True(value.IsTransitionFrom(null)); }
/// <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); }
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)); }
public void IsTransitionFrom_identity_false() { var value = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero); Assert.False(value.IsTransitionFrom(value)); }
public void IsTransitionFrom_null_true() { var value = new ZoneTransition(Instant.UnixEpoch, "abc", Offset.Zero, Offset.Zero); Assert.True(value.IsTransitionFrom(null)); }
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)); }
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)); }
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)); }
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)); }
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)); }
private ZoneTransition Read3_ZoneTransition(bool isNullable, bool checkType) { XmlQualifiedName xmlQualifiedName = checkType ? base.GetXsiType() : null; bool flag = false; if (isNullable) { flag = base.ReadNull(); } if (checkType && !(xmlQualifiedName == null) && (xmlQualifiedName.Name != this.id15_ZoneTransition || xmlQualifiedName.Namespace != this.id2_WorkingHoursxsd)) { throw base.CreateUnknownTypeException(xmlQualifiedName); } if (flag) { return(null); } ZoneTransition zoneTransition = new ZoneTransition(); bool[] array = new bool[2]; while (base.Reader.MoveToNextAttribute()) { if (!base.IsXmlnsAttribute(base.Reader.Name)) { base.UnknownNode(zoneTransition); } } base.Reader.MoveToElement(); if (base.Reader.IsEmptyElement) { base.Reader.Skip(); return(zoneTransition); } base.Reader.ReadStartElement(); base.Reader.MoveToContent(); int num = 0; int readerCount = base.ReaderCount; while (base.Reader.NodeType != XmlNodeType.EndElement && base.Reader.NodeType != XmlNodeType.None) { if (base.Reader.NodeType == XmlNodeType.Element) { if (!array[0] && base.Reader.LocalName == this.id11_Bias && base.Reader.NamespaceURI == this.id2_WorkingHoursxsd) { zoneTransition.Bias = XmlConvert.ToInt32(base.Reader.ReadElementString()); array[0] = true; } else if (!array[1] && base.Reader.LocalName == this.id16_ChangeDate && base.Reader.NamespaceURI == this.id2_WorkingHoursxsd) { zoneTransition.ChangeDate = this.Read2_ChangeDate(false, true); array[1] = true; } else { base.UnknownNode(zoneTransition, "WorkingHours.xsd:Bias, WorkingHours.xsd:ChangeDate"); } } else { base.UnknownNode(zoneTransition, "WorkingHours.xsd:Bias, WorkingHours.xsd:ChangeDate"); } base.Reader.MoveToContent(); base.CheckReaderCount(ref num, ref readerCount); } base.ReadEndElement(); return(zoneTransition); }