public void Equality() { // Goes back from 2am to 1am on June 13th SingleTransitionDateTimeZone zone = new SingleTransitionDateTimeZone(Instant.FromUtc(2011, 6, 12, 22, 0), 4, 3); var sample = zone.MapLocal(new LocalDateTime(2011, 6, 13, 1, 30)).First(); var fromUtc = Instant.FromUtc(2011, 6, 12, 21, 30).InZone(zone); // Checks all the overloads etc: first check is that the zone matters TestHelper.TestEqualsStruct(sample, fromUtc, Instant.FromUtc(2011, 6, 12, 21, 30).InUtc()); TestHelper.TestOperatorEquality(sample, fromUtc, Instant.FromUtc(2011, 6, 12, 21, 30).InUtc()); // Now just use a simple inequality check for other aspects... // Different offset var later = zone.MapLocal(new LocalDateTime(2011, 6, 13, 1, 30)).Last(); Assert.AreEqual(sample.LocalDateTime, later.LocalDateTime); Assert.AreNotEqual(sample.Offset, later.Offset); Assert.AreNotEqual(sample, later); // Different local time Assert.AreNotEqual(sample, zone.MapLocal(new LocalDateTime(2011, 6, 13, 1, 29)).First()); // Different calendar var withOtherCalendar = zone.MapLocal(new LocalDateTime(2011, 6, 13, 1, 30, CalendarSystem.Gregorian)).First(); Assert.AreNotEqual(sample, withOtherCalendar); }
public void TrickyCase() { // 1am occurs unambiguously in the early zone. var zone = new SingleTransitionDateTimeZone(Transition, Offset.FromHours(3), Offset.FromHours(5)); var mapping = zone.MapLocal(new LocalDateTime(2000, 1, 1, 1, 0)); CheckMapping(mapping, zone.EarlyInterval, zone.EarlyInterval, 1); }