public void BuildHuffmanTreeTest1() { HuffmanEncoder encoder = new HuffmanEncoder(); WeightsTable weightsTable = new WeightsTable(); HuffmanTreeBase huffmanTree = encoder.BuildHuffmanTree(weightsTable); Assert.IsNotNull(huffmanTree); CollectionAssert.IsEmpty(huffmanTree.FlattenValues()); }
public void BuildHuffmanTreeTest4() { HuffmanEncoder encoder = new HuffmanEncoder(); WeightsTable weightsTable = new WeightsTable(); for (int n = 0; n < 13; n++) { weightsTable.TrackSymbol((byte)'A'); } weightsTable.TrackSymbol((byte)'B'); for (int n = 0; n < 2; n++) { weightsTable.TrackSymbol((byte)'C'); } for (int n = 0; n < 15; n++) { weightsTable.TrackSymbol((byte)'D'); } for (int n = 0; n < 11; n++) { weightsTable.TrackSymbol((byte)'E'); } HuffmanTreeBase huffmanTree = encoder.BuildHuffmanTree(weightsTable); Assert.IsNotNull(huffmanTree); WeightedSymbol?[] expected = { new WeightedSymbol(0, 42), new WeightedSymbol((byte)'D', 15), new WeightedSymbol(0, 27), null, null, new WeightedSymbol((byte)'A', 13), new WeightedSymbol(0, 14), null, null, new WeightedSymbol(0, 03), new WeightedSymbol((byte)'E', 11), new WeightedSymbol((byte)'B', 01), new WeightedSymbol((byte)'C', 02), null, null, null, null, null, null, }; Assert.AreEqual(expected, huffmanTree.FlattenValues()); }
public void BuildHuffmanTreeTest2() { WeightsTable weightsTable = new WeightsTable(); weightsTable.TrackSymbol(1); HuffmanEncoder encoder = new HuffmanEncoder(); HuffmanTreeBase huffmanTree = encoder.BuildHuffmanTree(weightsTable); Assert.IsNotNull(huffmanTree); WeightedSymbol?[] expected = { new WeightedSymbol(1, 1), null, null }; Assert.AreEqual(expected, huffmanTree.FlattenValues()); }
public void BuildHuffmanTreeTest3() { HuffmanEncoder encoder = new HuffmanEncoder(); WeightsTable weightsTable = new WeightsTable(); for (int n = 0; n < 12; n++) { weightsTable.TrackSymbol((byte)'a'); } for (int n = 0; n < 2; n++) { weightsTable.TrackSymbol((byte)'b'); } for (int n = 0; n < 7; n++) { weightsTable.TrackSymbol((byte)'c'); } for (int n = 0; n < 13; n++) { weightsTable.TrackSymbol((byte)'d'); } for (int n = 0; n < 14; n++) { weightsTable.TrackSymbol((byte)'e'); } for (int n = 0; n < 85; n++) { weightsTable.TrackSymbol((byte)'f'); } HuffmanTreeBase huffmanTree = encoder.BuildHuffmanTree(weightsTable); Assert.IsNotNull(huffmanTree); WeightedSymbol?[] expected = { new WeightedSymbol(0, 133), new WeightedSymbol(0, 048), new WeightedSymbol((byte)'f', 085), new WeightedSymbol(0, 021), new WeightedSymbol(0, 027), null, null, new WeightedSymbol(0, 009), new WeightedSymbol((byte)'a', 012), new WeightedSymbol((byte)'d', 013), new WeightedSymbol((byte)'e', 014), new WeightedSymbol((byte)'b', 002), new WeightedSymbol((byte)'c', 007), null, null, null, null, null, null, null, null, null, null, }; Assert.AreEqual(expected, huffmanTree.FlattenValues()); }