public void HuffmanRleFull()
{
var generator = new AsciimationDataGenerator(AsciimationData);
var bytesFreqs = generator.GetBytesFreqs(false);
var bytes = AsciimationDataGenerator.SerializeByteCount(bytesFreqs);
var huffmanTable = Convert.ToBase64String(bytes);
var tree = new HuffmanTree(bytesFreqs);
var encodedTable = Convert.ToBase64String(bytes);
var encodedFrames = new List<string>();
for (int i = 0; i < generator.Frames.Length; i++)
{
var frame = generator.Frames[i];
encodedFrames.Add(Convert.ToBase64String(HuffmanRle.Encode(tree, frame.Bytes)));
}
var decodedTree = new HuffmanTree(AsciimationDataGenerator.DeserializeByteCount(Base64.DecodeBase64(encodedTable)));
var decodedFrames = new List<string>();
for (int i = 0; i < encodedFrames.Count; i++)
{
var frame = HuffmanRle.Decode(decodedTree, Base64.DecodeBase64(encodedFrames[i]));
CollectionAssert.AreEqual(generator.Frames[i].Bytes, frame);
}
}