//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //Binary Search Tree Tests //Description: Test suite for the BinaryTree class, using JUnit. //CS 284 //Programmed by Jonathan Voris //3/29/06 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import junit.framework.TestCase; import junit.framework.TestSuite; import junit.framework.Test; import java.util.Arrays; public class BinaryTreeTest extends TestCase { private BinaryTree emptyTree, fullTree, quizTree; Integer[] testVars = {18, 16, 30, 15, 46, 37, 17, 70, 2, 96}; Integer[] empty = {}; Integer[] inorder = {2, 15, 16, 17, 18, 30, 37, 46, 70, 96}; Integer[] preorder = {18, 16, 15, 2, 17, 30, 46, 37, 70, 96}; Integer[] postorder = {2, 15, 17, 16, 37, 96, 70, 46, 30, 18}; Integer[] quiz = {22, 7, 54, 19, 30, 61, 10}; protected void setUp() { emptyTree = new BinaryTree(); fullTree = new BinaryTree(testVars); quizTree = new BinaryTree(quiz); } public static Test suite() { return new TestSuite(BinaryTreeTest.class); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } //test inserting into the BST public void testInsertion() { Integer[] temp1 = {42}; Integer[] temp2 = {5, 42}; emptyTree.insert(42); assertTrue(Arrays.equals(emptyTree.inorder().toArray(),temp1)); emptyTree.insert(5); assertTrue(Arrays.equals(emptyTree.inorder().toArray(),temp2)); } //test the different BST traversals public void testInorder() { assertTrue(Arrays.equals(emptyTree.inorder().toArray(),empty)); assertTrue(Arrays.equals(fullTree.inorder().toArray(),inorder)); } public void testPreorder() { assertTrue(Arrays.equals(emptyTree.preorder().toArray(),empty)); assertTrue(Arrays.equals(fullTree.preorder().toArray(),preorder)); } public void testPostorder() { assertTrue(Arrays.equals(emptyTree.postorder().toArray(),empty)); assertTrue(Arrays.equals(fullTree.postorder().toArray(),postorder)); } public void testFind() { assertTrue(fullTree.find(37) != null); assertTrue(fullTree.find(5) == null); fullTree.insert(5); assertTrue(fullTree.find(5) != null); } public void testContains() { assertTrue(fullTree.contains(37)); assertFalse(fullTree.contains(5)); fullTree.insert(5); assertTrue(fullTree.contains(5)); } }