From 89cdf3efb49335e7c07a68a5a64657eeec2288a6 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Mon, 6 Feb 2017 11:41:36 -0500 Subject: Inital commit --- .../CompressDecompressTester.java | 159 +++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 projects/project4_huffman_tree/CompressDecompressTester.java (limited to 'projects/project4_huffman_tree/CompressDecompressTester.java') diff --git a/projects/project4_huffman_tree/CompressDecompressTester.java b/projects/project4_huffman_tree/CompressDecompressTester.java new file mode 100644 index 0000000..eeae7ca --- /dev/null +++ b/projects/project4_huffman_tree/CompressDecompressTester.java @@ -0,0 +1,159 @@ + +public class CompressDecompressTester +{ + public static void main(String[] args) + { + int numErrors = 0; + + // Test getTreeString() + + System.out.print("Testing the method getTreeString() with an empty tree: "); + if(CompressDecompress.getTreeString(null) != "") + { + System.out.println("FAIL"); + System.out.println("CompressDecompress.getTreeString(null) shoudl return an empty string (\"\")."); + System.out.println("But your method getTreeString(null) returns " + CompressDecompress.getTreeString(null) + ".\n"); + numErrors++; + } + else + { + System.out.println("PASS\n"); + } + + System.out.println("A two node tree was constructed (from nodes) using the following statements:"); + System.out.println(" BinaryNodeInterface nodeA = new BinaryNode('a');"); + System.out.println(" BinaryNodeInterface twoNodeTreeRoot = new BinaryNode(null, (BinaryNode) nodeA, null);"); + System.out.print("Testing the method getTreeString() with two node tree: "); + BinaryNodeInterface nodeA = new BinaryNode('a'); + BinaryNodeInterface twoNodeTreeRoot = new BinaryNode(null, (BinaryNode) nodeA, null); + if(!CompressDecompress.getTreeString(twoNodeTreeRoot).equals("ILa")) + { + System.out.println("FAIL"); + System.out.println("The method getTreeString(twoNodeTreeRoot) should return ILa."); + System.out.println("But your method getTreeString(twoNodeTreeRoot) returns " + CompressDecompress.getTreeString(twoNodeTreeRoot) + ".\n"); + numErrors++; + } + else + { + System.out.println("PASS\n"); + } + + System.out.println("A nine node tree was constructed (from nodes) using the following statements:"); + System.out.println(" BinaryNodeInterface nodeA = new BinaryNode('a');"); + System.out.println(" BinaryNodeInterface nodeB = new BinaryNode('b');"); + System.out.println(" BinaryNodeInterface nodeC = new BinaryNode('c');"); + System.out.println(" BinaryNodeInterface nodeD = new BinaryNode('d');"); + System.out.println(" BinaryNodeInterface nodeE = new BinaryNode('e');"); + System.out.println(" BinaryNodeInterface nodeAB = new BinaryNode(null, (BinaryNode) nodeA, (BinaryNode) nodeB);"); + System.out.println(" BinaryNodeInterface nodeCD = new BinaryNode(null, (BinaryNode) nodeC, (BinaryNode) nodeD);"); + System.out.println(" BinaryNodeInterface nodeABCD = new BinaryNode(null, (BinaryNode) nodeAB, (BinaryNode) nodeCD);"); + System.out.println(" BinaryNodeInterface nodeABCDE = new BinaryNode(null, (BinaryNode) nodeABCD, (BinaryNode) nodeE);"); + System.out.print("Testing the method getTreeString() with nine node tree: "); + BinaryNodeInterface nodeB = new BinaryNode('b'); + BinaryNodeInterface nodeC = new BinaryNode('c'); + BinaryNodeInterface nodeD = new BinaryNode('d'); + BinaryNodeInterface nodeE = new BinaryNode('e'); + BinaryNodeInterface nodeAB = new BinaryNode(null, (BinaryNode) nodeA, (BinaryNode) nodeB); + BinaryNodeInterface nodeCD = new BinaryNode(null, (BinaryNode) nodeC, (BinaryNode) nodeD); + BinaryNodeInterface nodeABCD = new BinaryNode(null, (BinaryNode) nodeAB, (BinaryNode) nodeCD); + BinaryNodeInterface nodeABCDE = new BinaryNode(null, (BinaryNode) nodeABCD, (BinaryNode) nodeE); + if(!CompressDecompress.getTreeString(nodeABCDE).equals("IIILaLbILcLdLe")) + { + System.out.println("FAIL"); + System.out.println("The method getTreeString(nodeABCDE) should return IIILaLbILcLdLe."); + System.out.println("But your method getTreeString(nodeABCDE) returns " + CompressDecompress.getTreeString(nodeABCDE) + ".\n"); + numErrors++; + } + else + { + System.out.println("PASS\n"); + } + + // Test compress() + + System.out.print("Testing the method compress with an empty input string: "); + if(!CompressDecompress.compress(null, "").equals("")) + { + System.out.println("FAIL"); + System.out.println("CompressDecompress.compress(null,\"\") shoudl return an empty string (\"\")."); + System.out.println("But your method compress(null,\"\") returns " + CompressDecompress.compress(null,"") + ".\n"); + numErrors++; + } + else + { + System.out.println("PASS"); + } + + System.out.print("Testing the method compress using two node tree from previous test and the input string is \"aaaa\": "); + if(!CompressDecompress.compress(twoNodeTreeRoot, "aaaa").equals("0000")) + { + System.out.println("FAIL"); + System.out.println("CompressDecompress.compress(twoNodeTreeRoot,\"aaaa\") should return \"0000\"."); + System.out.println("But your method compress(twoNodeTreeRoot,\"aaaa\") returns " + CompressDecompress.compress(twoNodeTreeRoot,"aaaa") + "."); + numErrors++; + } + else + { + System.out.println("PASS"); + } + + System.out.print("Testing the method compress using nine node tree from previous test and the input string is \"abcde\": "); + if(!CompressDecompress.compress(nodeABCDE, "abcde").equals("0000010100111")) + { + System.out.println("FAIL"); + System.out.println("CompressDecompress.compress(nodeABCDE,\"abcde\") should return \"0000010100111\"."); + System.out.println("But your method compress(twoNodeTreeRoot,\"abcde\") returns " + CompressDecompress.compress(nodeABCDE,"abcde") + "."); + numErrors++; + } + else + { + System.out.println("PASS"); + } + + // Test decompress() + + System.out.println(); + + System.out.print("Testing the method decompress with empty tree and empty string: "); + if(!CompressDecompress.decompress("", "").equals("")) + { + System.out.println("FAIL"); + System.out.println("CompressDecompress.decompress(\"\", \"\") should return an empty string (\"\")."); + System.out.println("But your method decompress(\"\", \"\") returns " + CompressDecompress.decompress("", "") + "."); + numErrors++; + } + else + { + System.out.println("PASS"); + } + + System.out.print("Testing the method decompress with the tree string IIILaLbILcLdLe and input string 1011010001000: "); + if(!CompressDecompress.decompress("IIILaLbILcLdLe", "1011010001000").equals("edcba")) + { + System.out.println("FAIL"); + System.out.println("CompressDecompress.decompress(\"IIILaLbILcLdLe\", \"1011010001000\" should return edcba."); + System.out.println("But your method decompress(\"IIILaLbILcLdLe\", \"1011010001000\" returns " + CompressDecompress.decompress("IIILaLbILcLdLe", "1011010001000") + "."); + numErrors++; + } + else + { + System.out.println("PASS"); + } + + System.out.println(); + + if(numErrors == 0) + { + System.out.println("Your CompressDecompress works perfectly (I guess). Here is your reward:\n"); + String jokeTree = "IIILeILaIIL\nILWIL?LvILgLkIILuLoILnLsIIIIIL,LbIL\"LfLtIILrLlIIILTIILILSILALmLyIIL.L'IIILYLGIL!LHLwIIILdILpLcILhLiL "; + String jokeCompressed = "1011001101111100110101101100111110010010010010001010011101111100111101100001101100110001110111100101001100000001101001111110110111111011110010100110001011011101101100011101110100011011000000101001110010111100110100000000111001001101100011100100110010110011101000010100111110010010010101101010111111010011001011101010110111001011110001110101001001111101010110111101100001011111111100001110110011110001011100111101100011010000111100011110111010001111001111011110010100110000000110100111100100111001111011110000011110001000110101101000010100000101110111000111101101010101001110011100001001111100111010001010010011011010001000110000110010110001101000011101111001010011000000011010011110101011011110011101000011110000111011001111000111101000001100101010111011000011110000011110001000110101101011011101010001111011001001111011111001001111110111100101001100010110111011011000111011101010100100101111101111000000100000111001011110000100000100100100111011100011010010101111001110110111010010101111110010010010101101010001100011101001100101110101011011111010000101001111000011101100111100010111001111011001011101000011110010101010100111111101011000111000111110010101011010111111010000101001111100111010101011001110100000111111001001101100011101110010110111100010000011110111011011110000101010011111001100100110111110100010001101110001110010011010110110011101011011011000111011110110101010100111101111100100110100110111011011100100010001100001100101100011010000111100011110111010001111001111011110010100110000000110100111110100000011111001001010110110000111100000111100010101111001010101011100011111001111010010111011110011000101111010111101111011000101001111100111010101011001110100000111111110010101000101100001001010000110101101101111101111101010100101011100001101011101100111111010001000110111000111100011110111001111101101010101001011100100010"; + + System.out.println(CompressDecompress.decompress(jokeTree, jokeCompressed)); + } + else + { + System.out.println("There are " + numErrors + " errors in your CompressDecompress.java"); + System.out.println("Fix your code and try again."); + } + } +} -- cgit v1.2.3-70-g09d2