public void EqualsTest() { HuffmanElement ele1 = new HuffmanElement(0x00, 2, 8); HuffmanElement ele2 = new HuffmanElement(0x01, 5, 3); Assert.IsFalse(ele1.Equals(ele2)); HuffmanElement ele3 = new HuffmanElement(0x00, 2, 8); HuffmanElement ele4 = new HuffmanElement(0x00, 2, 8); Assert.IsTrue(ele3.Equals(ele4)); }
public void HuffmanElementToString_Test() { byte runSizeInput1 = 0x00; ushort codeWordInput1 = 2; byte lengthInput1 = 8; HuffmanElement huffmanTestElement1 = new HuffmanElement(runSizeInput1, codeWordInput1, lengthInput1); Assert.AreEqual("0 = 10, 1000", huffmanTestElement1.ToString()); }
public void Comparison_HuffmanElementWithDifferentRunSizes_SmallerRunSizeBeforeLarger() { byte runSizeInput1 = 0x00; ushort codeWordInput1 = 0x02; byte lengthInput1 = 8; byte runSizeInput2 = 1; ushort codeWordInput2 = 3; byte lengthInput2 = 8; HuffmanElement huffmanTestElement1 = new HuffmanElement(runSizeInput1, codeWordInput1, lengthInput1); HuffmanElement huffmanTestElement2 = new HuffmanElement(runSizeInput2, codeWordInput2, lengthInput2); Assert.AreEqual(-1, huffmanTestElement1.CompareTo(huffmanTestElement2)); }
public void HasCode_Test() { byte runSizeInput1 = 00000000; ushort codeWordInput1 = 2; // 10 in base 2 byte lengthInput1 = 8; // 1000 in base 2 byte runSizeInput2 = 1; ushort codeWordInput2 = 3; // 11 in base 2 byte lengthInput2 = 8; // 1000 in base 2 HuffmanElement huffmanTestElement1 = new HuffmanElement(runSizeInput1, codeWordInput1, lengthInput1); HuffmanElement huffmanTestElement2 = new HuffmanElement(runSizeInput2, codeWordInput2, lengthInput2); HuffmanTable huffTable1 = new HuffmanTable(huffmanTestElement1, huffmanTestElement2); Assert.AreEqual(0, huffTable1.HasCode(2, 8).RunSize); }
public void Comparison_HuffmanElementWithDifferentLengths_ShorterLengthBeforeLonger() { byte runSizeInput1 = 0x00; ushort codeWordInput1 = 2; byte lengthInput1 = 7; byte runSizeInput2 = 0x01; ushort codeWordInput2 = 3; byte lengthInput2 = 8; HuffmanElement huffmanTestElement1 = new HuffmanElement(runSizeInput1, codeWordInput1, lengthInput1); HuffmanElement huffmanTestElement2 = new HuffmanElement(runSizeInput2, codeWordInput2, lengthInput2); var check = huffmanTestElement1.CompareTo(huffmanTestElement2); Assert.AreEqual(-1, check); }
public void HuffmanTable_Access_to_codeword_Test() { byte runSizeInput1 = 0x00; ushort codeWordInput1 = 2; // 10 in base 2 byte lengthInput1 = 8; // 1000 in base 2 byte runSizeInput2 = 0x1; ushort codeWordInput2 = 3; // 11 in base 2 byte lengthInput2 = 8; // 1000 in base 2 HuffmanElement huffmanTestElement1 = new HuffmanElement(runSizeInput1, codeWordInput1, lengthInput1); HuffmanElement huffmanTestElement2 = new HuffmanElement(runSizeInput2, codeWordInput2, lengthInput2); HuffmanTable huffTable1 = new HuffmanTable(huffmanTestElement1, huffmanTestElement2); Assert.AreEqual(2, huffTable1.Elements[0x00].CodeWord); }
public void Combinations_Test() { byte runSizeInput1 = 00000000; ushort codeWordInput1 = 2; // 10 in base 2 byte lengthInput1 = 8; // 1000 in base 2 byte runSizeInput2 = 1; ushort codeWordInput2 = 3; // 11 in base 2 byte lengthInput2 = 8; // 1000 in base 2 byte runSizeInput3 = 2; ushort codeWordInput3 = 4; // 100 in base 2 byte lengthInput3 = 8; // 1000 in base 2 HuffmanElement huffmanTestElement1 = new HuffmanElement(runSizeInput1, codeWordInput1, lengthInput1); HuffmanElement huffmanTestElement2 = new HuffmanElement(runSizeInput2, codeWordInput2, lengthInput2); HuffmanElement huffmanTestElement3 = new HuffmanElement(runSizeInput3, codeWordInput3, lengthInput3); HuffmanTable huffTable1 = new HuffmanTable(huffmanTestElement1, huffmanTestElement2, huffmanTestElement3); byte[] numberOfCodesOutput = huffTable1.Combinations(); Assert.AreEqual(3, numberOfCodesOutput[7]); }
public void HuffmanTableToString_Test() { byte runSizeInput1 = 00000000; ushort codeWordInput1 = 2; // 10 in base 2 byte lengthInput1 = 8; // 1000 in base 2 byte runSizeInput2 = 1; ushort codeWordInput2 = 3; // 11 in base 2 byte lengthInput2 = 8; // 1000 in base 2 HuffmanElement huffmanTestElement1 = new HuffmanElement(runSizeInput1, codeWordInput1, lengthInput1); HuffmanElement huffmanTestElement2 = new HuffmanElement(runSizeInput2, codeWordInput2, lengthInput2); HuffmanTable huffTable1 = new HuffmanTable(huffmanTestElement1, huffmanTestElement2); Assert.AreEqual("0,2,8;1,3,8;", huffTable1.ToString()); }
public void HasCodeTest_for_null_when_no_element_has_code() { byte runSizeInput1 = 00000000; ushort codeWordInput1 = 2; // 10 in base 2 byte lengthInput1 = 8; // 1000 in base 2 byte runSizeInput2 = 1; ushort codeWordInput2 = 3; // 11 in base 2 byte lengthInput2 = 8; // 1000 in base 2 HuffmanElement huffmanTestElement1 = new HuffmanElement(runSizeInput1, codeWordInput1, lengthInput1); HuffmanElement huffmanTestElement2 = new HuffmanElement(runSizeInput2, codeWordInput2, lengthInput2); HuffmanTable huffTable1 = new HuffmanTable(huffmanTestElement1, huffmanTestElement2); Assert.AreEqual(null, huffTable1.HasCode(1, 8)); }
public void GetElementFromRunSize_Test() { byte runSizeInput1 = 0x00; ushort codeWordInput1 = 2; // 10 in base 2 byte lengthInput1 = 8; // 1000 in base 2 byte runSizeInput2 = 0x01; ushort codeWordInput2 = 3; // 11 in base 2 byte lengthInput2 = 8; // 1000 in base 2 HuffmanElement huffmanTestElement1 = new HuffmanElement(runSizeInput1, codeWordInput1, lengthInput1); HuffmanElement huffmanTestElement2 = new HuffmanElement(runSizeInput2, codeWordInput2, lengthInput2); HuffmanTable huffTable1 = new HuffmanTable(huffmanTestElement1, huffmanTestElement2); Assert.AreEqual(huffmanTestElement2, huffTable1.GetElementFromRunSize(0x0, 0x1)); //combines to 0x01 }