public byte[] Compress(byte[] data)
        {
            var huffmanEncodedMessage = new List <bool>();

            foreach (var bt in data)
            {
                huffmanEncodedMessage.AddRange(_table.GetBits(bt));
            }

            // Adds most significant bytes of EOS
            int temp = 8 - huffmanEncodedMessage.Count % 8;
            int numberOfBitsInPadding = temp == 8 ? 0 : temp;

            for (int i = 0; i < numberOfBitsInPadding; i++)
            {
                huffmanEncodedMessage.Add(HuffmanCodesTable.Eos[i]);
            }

            return(BinaryConverter.ToBytes(huffmanEncodedMessage));
        }