Пример #1
0
        public void EncondeAndDecode_WithTextTest()
        {
            string text        = "aabbbc";
            var    huffmanTree = new HuffmanCode(text);

            string encode = huffmanTree.Encode(text);
            string decode = huffmanTree.Decode(encode);

            Assert.AreEqual("111100010", encode);
            Assert.AreEqual(text, decode);
        }
    public static void Main()
    {
        string input = Console.ReadLine();

        Console.WriteLine(input);
        var encoder = new HuffmanCode();
        var res     = encoder.Encode(input);

        Console.WriteLine("" + res.Tree.Count + " " + res.Encoded.Length);
        res.Tree
        .Select(p => string.Format("{0}: {1}", "" + p.Key, p.Value))
        .ForEach(Console.WriteLine);
        Console.WriteLine(res.Encoded);
    }
Пример #3
0
        public void EncondeAndDecode_WithGivenFrequenciesTest()
        {
            string message      = "aabbbc";
            var    alphabetFreq = new Dictionary <char, int>()
            {
                ['a'] = 2,
                ['b'] = 3,
                ['c'] = 1
            };

            var huffmanTree = new HuffmanCode(alphabetFreq);

            string encode = huffmanTree.Encode(message);
            string decode = huffmanTree.Decode(encode);

            Assert.AreEqual("111100010", encode);
            Assert.AreEqual(message, decode);
        }