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)); }
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)); }
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); }