Exemplo n.º 1
0
        public void Encode_AddsThreeSymbol_Added()
        {
            var tree = new HuffTree();
            tree.Encode('a');
            tree.Encode('a');
            tree.Encode('b');
            tree.Encode('r');

            var r = tree.Root;
            Assert.AreEqual(512, r.Number);
            Assert.AreEqual(4, r.Weight);
            Assert.AreEqual(511, r.Right.Number);
            Assert.AreEqual(2, r.Right.Weight);
            Assert.AreEqual('a', r.Right.Symbol);
            Assert.AreEqual(510, r.Left.Number);
            Assert.AreEqual(2, r.Left.Weight);
            var n510 = r.Left;
            Assert.AreEqual(509, n510.Right.Number);
            Assert.AreEqual(1, n510.Right.Weight);
            Assert.AreEqual('b', n510.Right.Symbol);
            Assert.AreEqual(508, n510.Left.Number);
            Assert.AreEqual(1, n510.Left.Weight);
            var n508 = n510.Left;
            Assert.AreEqual(507, n508.Right.Number);
            Assert.AreEqual(1, n508.Right.Weight);
            Assert.AreEqual('r', n508.Right.Symbol);
            Assert.AreEqual(506, n508.Left.Number);
            Assert.AreEqual(0, n508.Left.Weight);
        }
Exemplo n.º 2
0
        public void Encode_AddsTwoOneSymbols_CodeReturned()
        {
            var tree = new HuffTree();

            Assert.AreEqual("a", tree.Encode('a'));
            Assert.AreEqual("1", tree.Encode('a'));
        }
Exemplo n.º 3
0
        public void Encode_AddsThreeSymbol_CodeReturned()
        {
            var tree = new HuffTree();

            Assert.AreEqual("a", tree.Encode('a'));
            Assert.AreEqual("1", tree.Encode('a'));
            Assert.AreEqual("0b", tree.Encode('b'));
            Assert.AreEqual("00r", tree.Encode('r'));
        }
Exemplo n.º 4
0
        public void Encode_AddsTwoOneSymbols_Added()
        {
            var tree = new HuffTree();
            tree.Encode('a');
            tree.Encode('a');

            Assert.AreEqual(512, tree.Root.Number);
            Assert.AreEqual(2, tree.Root.Weight);
            Assert.AreEqual(511, tree.Root.Right.Number);
            Assert.AreEqual(2, tree.Root.Right.Weight);
            Assert.AreEqual('a', tree.Root.Right.Symbol);
            Assert.AreEqual(510, tree.Root.Left.Number);
            Assert.AreEqual(0, tree.Root.Left.Weight);
        }
Exemplo n.º 5
0
        public void Encode_EncodesText_Encoded()
        {
            var tree = new HuffTree();
            var result = tree.Encode("This is short sample text to encode.");

            Assert.AreEqual("T0h00i100s000 011111101111110100o1000r0000t1010111000a101100m111000p00100l00000e101000011010111000x1000101110011010111011101100n1011100c10110010000d0111100100.", result);
        }
Exemplo n.º 6
0
        public void TestHuffaman()
        {
            char[]   chars   = { 'a', 'b', 'c', 'd' };
            double[] weight  = { 7.0, 5.0, 2.0, 4.0 };
            HuffTree huffman = new HuffTree(chars, weight);

            Assert.AreEqual(huffman.Decode(huffman.Encode("abcd")), "abcd");
        }
Exemplo n.º 7
0
        static void Main(string[] args)
        {
            string   in_f     = "C:/Users/chad/rep/encoder/test/files/ex-1.txt";
            string   out_temp = "C:/Users/chad/rep/encoder/test/files/ex.table";
            HuffTree tree     = new HuffTree();

            tree.Encode(in_f, out_temp);
            ///string out_f = "C:/Users/chad/rep/encoder/test/files/ex.dec";
            //huff.encode(in_f, out_temp);

            //huff.decode(out_temp, out_f);
            //Debug.Assert(FileCompare(in_f, out_f));
        }
Exemplo n.º 8
0
        public void Encode_AddsFourSymbol_Added()
        {
            var tree = new HuffTree();
            tree.Encode('a');
            tree.Encode('a');
            tree.Encode('b');
            tree.Encode('r');
            tree.Encode('d');

            var r = tree.Root;
            Assert.AreEqual(512, r.Number);
            Assert.AreEqual(5, r.Weight);
            Assert.AreEqual(511, r.Right.Number);
            Assert.AreEqual(3, r.Right.Weight);
            Assert.AreEqual(510, r.Left.Number);
            Assert.AreEqual(2, r.Left.Weight);
            Assert.AreEqual('a', r.Left.Symbol);
            var n511 = r.Right;
            Assert.AreEqual(509, n511.Right.Number);
            Assert.AreEqual(2, n511.Right.Weight);
            Assert.AreEqual(508, n511.Left.Number);
            Assert.AreEqual(1, n511.Left.Weight);
            Assert.AreEqual('b', n511.Left.Symbol);
            var n509 = n511.Right;
            Assert.AreEqual(507, n509.Right.Number);
            Assert.AreEqual(1, n509.Right.Weight);
            Assert.AreEqual('r', n509.Right.Symbol);
            Assert.AreEqual(506, n509.Left.Number);
            Assert.AreEqual(1, n509.Left.Weight);
            var n506 = n509.Left;
            Assert.AreEqual(505, n506.Right.Number);
            Assert.AreEqual(1, n506.Right.Weight);
            Assert.AreEqual('d', n506.Right.Symbol);
            Assert.AreEqual(504, n506.Left.Number);
            Assert.AreEqual(0, n506.Left.Weight);
        }