public void MonthStampCompressor() { var months = new List <MonthStamp>(); var month = new MonthStamp(1, 1); do { months.Add(month); month = month.AddMonths(1); } while (month.Year <= 5000); using (var ms = new MemoryStream()) { var writer = ms.AsIWriteBytes(); foreach (var x in months) { writer.WriteCompressedMonthStamp(x); } ms.Seek(0, SeekOrigin.Begin); var reader = ms.AsIReadBytes(); var months2 = new List <MonthStamp>(); for (var i = 0; i < months.Count; i++) { months2.Add(reader.ReadCompressedMonthStamp()); } Assert.IsTrue(months.SequenceEqual(months2)); } }
public static void WriteCompressedMonthStamp(this IWriteBytes stream, MonthStamp value) { stream.WriteCompressedUInt((uint)(value.Year * 12 + value.Month - 1)); }