public void stress_test() { var subject = new PathIndex <ByteString>(); subject.Add("start", "start value"); long totalBytes = 0; for (int i = 0; i < 1000; i++) { var newKey = Convert.ToBase64String(Guid.NewGuid().ToByteArray()); var newValue = Convert.ToBase64String(Guid.NewGuid().ToByteArray()); totalBytes += newKey.Length; totalBytes += newValue.Length; subject.Add(newKey, newValue); } subject.Add("end", "end value"); Assert.That((string)subject.Get("start"), Is.EqualTo("start value")); Assert.That((string)subject.Get("end"), Is.EqualTo("end value")); using (var ms = new MemoryStream()) { subject.WriteTo(ms); Console.WriteLine($"Produced {totalBytes} bytes"); Console.WriteLine($"Stored {ms.Length} bytes"); } Console.WriteLine(subject.DiagnosticString()); }
public void can_output_to_a_stream() { var subject = new PathIndex <ByteString>(); subject.Add("my/path/1", "value1"); subject.Add("my/path/2", "value2"); subject.Add("my/other/path", "value3"); subject.Add("my/other/path/longer", "value4"); using (var ms = new MemoryStream()) { subject.WriteTo(ms); Assert.That(ms.Length, Is.GreaterThan(10)); Console.WriteLine($"Wrote {ms.Length} bytes"); } }
public void can_read_from_a_stream() { var source = new PathIndex <ByteString>(); source.Add("my/path/1", "value1"); source.Add("my/path/2", "value2"); source.Add("my/other/path", "value3"); source.Add("my/other/path/longer", "value4"); using (var ms = new MemoryStream()) { source.WriteTo(ms); ms.Seek(0, SeekOrigin.Begin); var target = PathIndex <ByteString> .ReadFrom(ms); Assert.That((string)target.Get("my/path/1"), Is.EqualTo("value1")); Assert.That((string)target.Get("my/path/2"), Is.EqualTo("value2")); Assert.That((string)target.Get("my/other/path"), Is.EqualTo("value3")); Assert.That((string)target.Get("my/other/path/longer"), Is.EqualTo("value4")); } }