public void HistogramCanReadWhatItWrote() { var histogram = new InternalHistogram(); for (long i = 0; i < 10; i++) { histogram.AddValue(i / 2); } var histogram2 = new InternalHistogram(); using (var mem = new MemoryStream()) { histogram.WriteToPersistedData(mem); mem.Position = 0; using (var buffer = new BufferedValueArray.VariableLengthBufferedValueArray(mem.GetBuffer(), 0, (int)mem.Length)) { histogram2.MergeFrom(new MultiValueMergeSource(buffer, 0)); } } Assert.AreEqual(histogram.SampleCount, histogram2.SampleCount); foreach (var kvp in histogram.Data) { Assert.AreEqual(kvp.Value, histogram2.Data[kvp.Key]); } }