public void testPresent5() {
        try {
            TreeNode result = contains(mkChain(new String[]{ "label1", "label2" }), new TreeNode("label2"));
            assertTrue(null, "Failed to locate the leaf node of a chain!", 
                result != null
                && result.getData() != null
                && result.getData().equals("label2") 
                && result.getBranch() != null
                && result.getBranch().length == 0);
        } catch(NotFound exn) {
            fail(exn, "You can not locate the leaf node of a chain! Possible causes: \n* Maybe you have an error in your `recursive` solution:\n* are `all` return statements present?\n* Maybe you are using the `question's` equals method instead of simply comparing node labels?\n* What is the difference between `==` and the `equals(Object)` method?");
        } catch(TreeException exn) {
            fail(exn, "An unexpected `TreeException` was thrown!");
        } catch(Throwable exn) {
            fail(exn, "Unexpected exception thrown: " + exn.getClass().getName());
        } // end of try-catch
    } // end of method testPresent5