Kotlinlearncs.online LogoJava
Return to List

Test Writing: BinaryTree to Map

Created By: Geoffrey Challen
/ Version: 2021.4.0

Create a public class BinaryTreeToMap that provides a single static method toMap. toMap accepts a BinaryTree<?> and returns a Map<Object, Integer> mapping the values in the tree to the count of the times that the value appears.

Our suggestion is to have toMap create the map and then call a private recursive helper method to populate it. If the tree passed to toMap is null you should throw an IllegalArgumentException. You will need to import cs125.trees.BinaryTree, as well as Map and a Map implementation (probably HashMap) from java.util. We've provided some code to get you started.

For reference, cs125.trees.BinaryTree has the following public properties:

Test Design Challenge

You're challenge is to write tests for this problem described above.

  • Provide a public class named TestBinaryTreeToMap with a single non-private class method named test that accepts no arguments and does not return a value.
  • If the implementation of the class described above is incorrect, your test method should throw an exception.
  • If it is correct, do not throw an exception.
  • You may want to use Java's assert method
import cs125.trees.BinaryTree;
import java.util.Map;
public class BinaryTreeToMap {
public static Map<Object, Integer> toMap(BinaryTree<?> tree) {
// Check for null
// Create your map
// Call the helper method to populate the map
// Return the map
return null;
}
// Helper method
private static void toMap(BinaryTree<?> tree, Map<Object, Integer> values) {}
}