public void WrittenValuesCanBeReadBackCorrectly() { var values = new[] { 4, 8, 1.5, 1.6, 1.7, 1.7, 2.3, 22.0 / 7.0, 653.2, 653.02 }; var buffer = new BitBuffer(); var writer = new ValueWriter(buffer); foreach (var value in values) { writer.AppendValue(value); } var reader = new ValueReader(buffer); var actual = new List <double>(); while (reader.HasMoreValues) { actual.Add(reader.ReadNextValue()); } actual.Count.Should().Be(values.Length); for (int i = 0; i < actual.Count; ++i) { actual[i].Should().Be(values[i]); } }
public ArraySegment <byte> Compress(double[] values) { var buffer = new BitBuffer(values.Length * 8); var writer = new ValueWriter(buffer); for (int i = 0, count = values.Length; i < count; i++) { writer.AppendValue(values[i]); } var bytes = buffer.ToArray(); return(new ArraySegment <byte>(bytes)); }