public List <EncodedByte> GetEncodedBytesFromByteStatistics(List <ByteStatistics> characterStatistics)
        {
            if (characterStatistics == null)
            {
                throw new ArgumentNullException(nameof(characterStatistics));
            }

            var huffmanTreeRoot = huffmanNodesManager.GetNodeFromByteStatistics(characterStatistics);

            var encodedBytes = new List <EncodedByte>();

            foreach (var node in huffmanTreeRoot.NodesInPreOrder)
            {
                if (node == huffmanTreeRoot)
                {
                    continue;
                }

                if (!node.NodeInfo.Code.HasValue)
                {
                    continue;
                }

                var encodedByte = new EncodedByte {
                    Byte = node.NodeInfo.Code.Value
                };
                huffmanNodesManager.SetPathFromNodeToParent(encodedByte.EncodingBits, node, huffmanTreeRoot, 100);

                encodedBytes.Add(encodedByte);
            }

            return(encodedBytes);
        }
 public void Setup()
 {
     encodedByte = new EncodedByte();
 }