public void Extremes() { ZoneRecurrence winter = new ZoneRecurrence("Winter", Offset.Zero, new ZoneYearOffset(TransitionMode.Wall, 10, 5, 0, false, new LocalTime(2, 0)), int.MinValue, int.MaxValue); ZoneRecurrence summer = new ZoneRecurrence("Summer", Offset.FromHours(1), new ZoneYearOffset(TransitionMode.Wall, 3, 10, 0, false, new LocalTime(1, 0)), int.MinValue, int.MaxValue); var zone = new StandardDaylightAlternatingMap(Offset.Zero, winter, summer); var firstSpring = Instant.FromUtc(-9998, 3, 10, 1, 0); var firstAutumn = Instant.FromUtc(-9998, 10, 5, 1, 0); // 1am UTC = 2am wall var lastSpring = Instant.FromUtc(9999, 3, 10, 1, 0); var lastAutumn = Instant.FromUtc(9999, 10, 5, 1, 0); // 1am UTC = 2am wall var dstOffset = Offset.FromHours(1); // Check both year -9998 and 9999, both the infinite interval and the next one in var firstWinter = new ZoneInterval("Winter", Instant.BeforeMinValue, firstSpring, Offset.Zero, Offset.Zero); var firstSummer = new ZoneInterval("Summer", firstSpring, firstAutumn, dstOffset, dstOffset); var lastSummer = new ZoneInterval("Summer", lastSpring, lastAutumn, dstOffset, dstOffset); var lastWinter = new ZoneInterval("Winter", lastAutumn, Instant.AfterMaxValue, Offset.Zero, Offset.Zero); Assert.AreEqual(firstWinter, zone.GetZoneInterval(Instant.MinValue)); Assert.AreEqual(firstWinter, zone.GetZoneInterval(Instant.FromUtc(-9998, 2, 1, 0, 0))); Assert.AreEqual(firstSummer, zone.GetZoneInterval(firstSpring)); Assert.AreEqual(firstSummer, zone.GetZoneInterval(Instant.FromUtc(-9998, 5, 1, 0, 0))); Assert.AreEqual(lastSummer, zone.GetZoneInterval(lastSpring)); Assert.AreEqual(lastSummer, zone.GetZoneInterval(Instant.FromUtc(9999, 5, 1, 0, 0))); Assert.AreEqual(lastWinter, zone.GetZoneInterval(lastAutumn)); Assert.AreEqual(lastWinter, zone.GetZoneInterval(Instant.FromUtc(9999, 11, 1, 0, 0))); Assert.AreEqual(lastWinter, zone.GetZoneInterval(Instant.MaxValue)); }
public void GetZoneInterval_Instant_Summer() { var interval = TestMap.GetZoneInterval(Instant.FromUtc(2010, 6, 1, 0, 0)); Assert.AreEqual("Summer", interval.Name); Assert.AreEqual(Offset.FromHours(6), interval.WallOffset); Assert.AreEqual(Offset.FromHours(5), interval.StandardOffset); Assert.AreEqual(Offset.FromHours(1), interval.Savings); Assert.AreEqual(new LocalDateTime(2010, 3, 10, 2, 0), interval.IsoLocalStart); Assert.AreEqual(new LocalDateTime(2010, 10, 5, 2, 0), interval.IsoLocalEnd); }
public void InvalidMap_SimultaneousTransition() { // Two recurrences with different savings, but which occur at the same instant in time every year. ZoneRecurrence r1 = new ZoneRecurrence("Recurrence1", Offset.Zero, new ZoneYearOffset(TransitionMode.Utc, 10, 5, 0, false, new LocalTime(2, 0)), int.MinValue, int.MaxValue); ZoneRecurrence r2 = new ZoneRecurrence("Recurrence2", Offset.FromHours(1), new ZoneYearOffset(TransitionMode.Utc, 10, 5, 0, false, new LocalTime(2, 0)), int.MinValue, int.MaxValue); var map = new StandardDaylightAlternatingMap(Offset.Zero, r1, r2); Assert.Throws <InvalidOperationException>(() => map.GetZoneInterval(Instant.FromUtc(2017, 8, 25, 0, 0, 0))); }
public void GetZoneInterval_Winter() { SampleZone.GetZoneInterval(January1st); }
public ZoneInterval GetZoneInterval_Winter() => SampleZone.GetZoneInterval(February1st);