public void HuffmanCompression() { var compressor = new HuffmanCompressionProcessor(); const string input = "cabacabaababbababcacacacaedfghijklmnopqrstuvwxyz" + "Adsasd131221453!~[]{}{}~~`\'\\!@#$%^&*()_+=90klasdmnvzxcciuhakdkasdfioads" + "ADBSADLGUCJNZCXNJSLKDGYSADHIASDMNKJLDBOCXBVCXJIMSAD<NSKLDBHCBIUXHCXZNCMSN" + ",<>?|"; var inputBytes = Encoding.UTF8.GetBytes(input); var now = DateTime.Now.Millisecond; var compressed = compressor.Compress(inputBytes); var decompressed = compressor.Decompress(compressed); var newNow = DateTime.Now.Millisecond; var output = Encoding.UTF8.GetString(decompressed); Assert.Equal(input, output); Console.WriteLine("Compress/decompress time: " + (newNow - now)); Console.WriteLine("Input length: " + input.Length); }
public CompressionProcessor() { /* 12 -> 6.5.2 * The initial value is 4,096 bytes. */ _maxHeaderByteSize = 4096; _isSettingHeaderTableSizeReceived = false; /* 07 -> 3.1.2 * The header table is initially empty. */ _remoteHeadersTable = new HeadersList(); _localHeadersTable = new HeadersList(); _remoteRefSet = new HeadersList(); _localRefSet = new HeadersList(); _huffmanProc = new HuffmanCompressionProcessor(); InitCompressor(); InitDecompressor(); }