コード例 #1
0
        public void ShouldReturnSequenceToBytesCodeMap()
        {
            //Arrange
            const string testText  = "TO BE OR NOT TO BE";
            var          oBits     = new [] { false, false };
            var          spaceBits = new [] { true, false };
            var          bBits     = new [] { false, true, false };
            var          eBits     = new [] { false, true, true };
            var          tBits     = new [] { true, true, true };
            var          nBits     = new [] { true, true, false, true };
            var          rBits     = new [] { true, true, false, false };


            var huffmanTree = new HuffmanTree(testText.DivideIntoGetHuffmanLeaves(1));
            var tree        = huffmanTree.Create();
            var analyzer    = new BitCodeMappingService(tree);

            //Act
            Dictionary <string, IEnumerable <bool> > map = analyzer.GetSentenceToBitCodesMappings();

            //Assert
            Assert.True(map.Count.Equals(7));
            Assert.True(AreBitArraysEqual(map["O"], oBits));
            Assert.True(AreBitArraysEqual(map[" "], spaceBits));
            Assert.True(AreBitArraysEqual(map["B"], bBits));
            Assert.True(AreBitArraysEqual(map["E"], eBits));
            Assert.True(AreBitArraysEqual(map["T"], tBits));
            Assert.True(AreBitArraysEqual(map["N"], nBits));
            Assert.True(AreBitArraysEqual(map["R"], rBits));
        }
コード例 #2
0
        public void ShouldCreateHuffmanTree()
        {
            //Arrange
            const string testText    = "TO BE OR NOT TO BE";
            var          huffmanTree = new HuffmanTree(testText.DivideIntoGetHuffmanLeaves(1));

            //Act
            var tree = huffmanTree.Create();

            //Assert
            Assert.True(tree.Size().Equals(13));
            Assert.True(tree.Height.Equals(4));
        }
コード例 #3
0
        public void FillTree()
        {
            weights = new List <int>(5);

            weights.Clear();
            for (int i = 1; i < 5; i++)
            {
                weights.Add(i);
            }
            huffmanTree = new HuffmanTree(weights);

            huffmanTree.Create();

            HuffmanTreeNode huffTreeNode = huffmanTree[huffmanTree.Data.Count - 1];

            TreeNode root = new TreeNode("huffman Tree");

            FillTreeNodes(huffTreeNode, root);

            treeView1.Nodes.Add(root);
        }