public void deflateWithSyncFlush() { String original = "Yes, yes, yes. That's why we're taking extreme precautions."; var data = new EasyBuffer(); data.WriteUtf8(original); var sink = new EasyBuffer(); DeflaterSink deflaterSink = new DeflaterSink(sink, new Deflater()); deflaterSink.Write(data, data.Size); deflaterSink.Flush(); var inflated = inflate(sink); Assert.AreEqual(original, inflated.ReadUtf8()); }
public void deflatePoorlyCompressed() { ByteString original = randomBytes(1024 * 1024); var data = new EasyBuffer(); data.Write(original); var sink = new EasyBuffer(); DeflaterSink deflaterSink = new DeflaterSink(sink, new Deflater()); deflaterSink.Write(data, data.Size); deflaterSink.Flush(); deflaterSink.Dispose(); var inflated = inflate(sink); Assert.AreEqual(original, inflated.ReadByteString()); }
public void deflateWellCompressed() { String original = repeat('a', 1024 * 1024); var data = new EasyBuffer(); data.WriteUtf8(original); var sink = new EasyBuffer(); DeflaterSink deflaterSink = new DeflaterSink(sink, new Deflater()); deflaterSink.Write(data, data.Size); deflaterSink.Flush(); deflaterSink.Dispose(); var inflated = inflate(sink); Assert.AreEqual(original, inflated.ReadUtf8()); }
public void deflateWithClose() { var data = new EasyBuffer(); String original = "They're moving in herds. They do move in herds."; data.WriteUtf8(original); var sink = new EasyBuffer(); DeflaterSink deflaterSink = new DeflaterSink(sink, new Deflater()); deflaterSink.Write(data, data.Size); deflaterSink.Flush(); deflaterSink.Dispose(); var inflated = inflate(sink); Assert.AreEqual(original, inflated.ReadUtf8()); }
public void multipleSegmentsWithoutCompression() { var buffer = new EasyBuffer(); Deflater deflater = new Deflater(); //deflater.SetLevel(Deflater.NO_COMPRESSION);//SharpZipLib 会出错~ DeflaterSink deflaterSink = new DeflaterSink(buffer, deflater); int byteCount = Segment.SIZE * 4; var data = new EasyBuffer().WriteUtf8(repeat('a', byteCount)); deflaterSink.Write(data, data.Size); deflaterSink.Flush(); deflaterSink.Dispose(); var test1 = repeat('a', byteCount); var test2 = inflate(buffer).ReadUtf8(byteCount); Assert.AreEqual(test1, test2); }
public void deflateIntoNonemptySink() { String original = "They're moving in herds. They do move in herds."; // Exercise all possible offsets for the outgoing segment. for (int i = 0; i < Segment.SIZE; i++) { var data = new EasyBuffer().WriteUtf8(original); var sink = new EasyBuffer().WriteUtf8(repeat('a', i)); DeflaterSink deflaterSink = new DeflaterSink(sink, new Deflater()); deflaterSink.Write(data, data.Size); deflaterSink.Flush(); deflaterSink.Dispose(); sink.Skip(i); var inflated = inflate(sink); Assert.AreEqual(original, inflated.ReadUtf8()); } }