public void TestGetLeafs() { var t = new Dictionary <string, int> { { "A", 3 }, { "B", 3 }, { "C", 2 }, { "D", 1 }, { "E", 1 }, { "F", 1 }, { "G", 1 }, { "H", 1 }, }; var origLen = t.Count; var testing = new HuffmanEncoding(t); var leafs = testing.GetLeafs(); Assert.AreEqual(origLen, leafs.Count); var counter = 0; foreach (var k in t.Keys) { var node = leafs.FirstOrDefault(l => l.Word == k); Assert.IsNotNull(node); Assert.AreEqual(t[k], node.Count); Assert.AreEqual(counter, node.Index); counter += 1; } foreach (var l in leafs) { Console.WriteLine(l.GetEncodingString()); } }
public void TestGetLeafByWord() { var t = new Dictionary <string, int> { { "A", 3 }, { "B", 3 }, { "C", 2 }, { "D", 1 }, { "E", 1 }, { "F", 1 }, { "G", 1 }, { "H", 1 }, }; var testing = new HuffmanEncoding(t); var testResult = testing.GetNodeByWord("A"); Assert.IsNotNull(testResult); Assert.AreEqual("A", testResult.Word); Assert.AreEqual(3, testResult.Count); testResult = testing.GetNodeByWord("H"); Assert.IsNotNull(testResult); Assert.AreEqual("H", testResult.Word); Assert.AreEqual(1, testResult.Count); }
public void TestGetNodeByPath() { var t = new Dictionary <string, int> { { "A", 3 }, { "B", 3 }, { "C", 2 }, { "D", 1 }, { "E", 1 }, { "F", 1 }, { "G", 1 }, { "H", 1 }, }; var testing = new HuffmanEncoding(t); foreach (var leaf in testing.GetLeafs()) { Console.WriteLine(string.Join(" ", leaf.Word, leaf.GetEncodingString())); } var testPath = testing.GetNodeByWord("F").Encoding; var testResult = testing.GetNodeByPath(testPath); Assert.IsNotNull(testResult); Assert.AreEqual("F", testResult.Word); }
public void TestPushEncoding() { var leafs = new Dictionary <string, int> { { "A", 3 }, { "B", 3 }, { "C", 2 }, { "D", 1 }, { "E", 1 }, { "F", 1 }, { "G", 1 }, { "H", 1 }, }; var testing = new HuffmanEncoding(leafs); Assert.AreEqual("111", testing.RootNode.Right.Right.Right.GetEncodingString()); }
public void TestBuildTree() { var leafs = new Dictionary <string, int> { { "A", 3 }, { "B", 3 }, { "C", 2 }, { "D", 1 }, { "E", 1 }, { "F", 1 }, { "G", 1 }, { "H", 1 }, }; var totalCount = leafs.Sum(l => l.Value); var testing = new HuffmanEncoding(leafs); Assert.IsNotNull(testing.RootNode); Assert.AreEqual(totalCount, testing.RootNode.Count); Assert.IsNotNull(testing.RootNode.Right); Assert.IsNotNull(testing.RootNode.Left); Console.WriteLine(testing.RootNode.Left.Count); Console.WriteLine(testing.RootNode.Right.Count); }