public void testTree(){
        Tree T = new Tree();
        assertEquals(0, T.getMaxLevel());
        assertEquals(1, T.getNodesOfLevel(0).size());
        TreeNode root = T.getNodesOfLevel(0).get(0);
        root.addChild();
        assertEquals(1, T.getMaxLevel());
        root.addChild();
        assertEquals(1, T.getMaxLevel());
        assertEquals(2, T.getNodesOfLevel(1).size());
        List<TreeNode> ns = T.getNodesOfLevel(1);
        TreeNode tn = ns.get(0);
        int i;
        for(i=0; i<5; i++){
           tn.addChild();
           assertEquals(1, tn.getChildren().size());
           tn=tn.getChildren().get(0);
           assertEquals(i+2, T.getMaxLevel());
        }
        assertNull(root.getParent());
        assertEquals(i+1, T.getMaxBranchLevel(root));
        assertEquals(ns.get(1).getLevel(), T.getMaxBranchLevel(ns.get(1)));
        assertEquals(ns.get(0).getLevel(), T.getMinLevel());
        assertEquals(6, new Tree(ns.get(0).getChildren().get(0)).getMaxLevel());
    }