public void Valid()
 {
     var location = new TzdbZone1970Location(
         60 * 3600 + 15 * 60 + 5,
         100 * 3600 + 30 * 60 + 10,
         new[] { SampleCountry },
         "Etc/MadeUpZone",
         "Comment");
     Assert.AreEqual(60.25 + 5.0 / 3600, location.Latitude, 0.000001);
     Assert.AreEqual(100.5 + 10.0 / 3600, location.Longitude, 0.000001);
     Assert.AreEqual("Country name", location.Countries[0].Name);
     Assert.AreEqual("CO", location.Countries[0].Code);
     Assert.AreEqual("Etc/MadeUpZone", location.ZoneId);
     Assert.AreEqual("Comment", location.Comment);
 }
示例#2
0
 internal void HandleZone1970LocationsField(TzdbStreamField field)
 {
     CheckSingleField(field, zone1970Locations);
     CheckStringPoolPresence(field);
     using (var stream = field.CreateStream())
     {
         var reader = new DateTimeZoneReader(stream, stringPool);
         var count  = reader.ReadCount();
         var array  = new TzdbZone1970Location[count];
         for (int i = 0; i < count; i++)
         {
             array[i] = TzdbZone1970Location.Read(reader);
         }
         zone1970Locations = array;
     }
 }
示例#3
0
        public void Valid()
        {
            var location = new TzdbZone1970Location(
                60 * 3600 + 15 * 60 + 5,
                100 * 3600 + 30 * 60 + 10,
                new[] { SampleCountry },
                "Etc/MadeUpZone",
                "Comment");

            Assert.AreEqual(60.25 + 5.0 / 3600, location.Latitude, 0.000001);
            Assert.AreEqual(100.5 + 10.0 / 3600, location.Longitude, 0.000001);
            Assert.AreEqual("Country name", location.Countries[0].Name);
            Assert.AreEqual("CO", location.Countries[0].Code);
            Assert.AreEqual("Etc/MadeUpZone", location.ZoneId);
            Assert.AreEqual("Comment", location.Comment);
        }
示例#4
0
        public void ReadInvalid()
        {
            var stream = new MemoryStream();
            var writer = new DateTimeZoneWriter(stream, null);

            // Valid latitude/longitude
            writer.WriteSignedCount(0);
            writer.WriteSignedCount(0);
            // But no countries
            writer.WriteCount(0);
            writer.WriteString("Europe/Somewhere");
            writer.WriteString("");
            stream.Position = 0;
            var reader = new DateTimeZoneReader(stream, null);

            Assert.Throws <InvalidNodaDataException>(() => TzdbZone1970Location.Read(reader));
        }
 public void Serialization()
 {
     var location = new TzdbZone1970Location(
         60 * 3600 + 15 * 60 + 5,
         100 * 3600 + 30 * 60 + 10,
         new[] { SampleCountry },
         "Etc/MadeUpZone",
         "Comment");
     var stream = new MemoryStream();
     var writer = new DateTimeZoneWriter(stream, null);
     location.Write(writer);
     stream.Position = 0;
     var reloaded = TzdbZone1970Location.Read(new DateTimeZoneReader(stream, null));
     Assert.AreEqual(location.Latitude, reloaded.Latitude);
     Assert.AreEqual(location.Longitude, reloaded.Longitude);
     CollectionAssert.AreEqual(location.Countries, reloaded.Countries);
     Assert.AreEqual(location.ZoneId, reloaded.ZoneId);
     Assert.AreEqual(location.Comment, reloaded.Comment);
 }
示例#6
0
        public void Serialization()
        {
            var location = new TzdbZone1970Location(
                60 * 3600 + 15 * 60 + 5,
                100 * 3600 + 30 * 60 + 10,
                new[] { SampleCountry },
                "Etc/MadeUpZone",
                "Comment");
            var stream = new MemoryStream();
            var writer = new DateTimeZoneWriter(stream, null);

            location.Write(writer);
            stream.Position = 0;
            var reloaded = TzdbZone1970Location.Read(new DateTimeZoneReader(stream, null));

            Assert.AreEqual(location.Latitude, reloaded.Latitude);
            Assert.AreEqual(location.Longitude, reloaded.Longitude);
            CollectionAssert.AreEqual(location.Countries, reloaded.Countries);
            Assert.AreEqual(location.ZoneId, reloaded.ZoneId);
            Assert.AreEqual(location.Comment, reloaded.Comment);
        }