@staticmethod<EOL><INDENT>def unittree(ntips, treeheight=<NUM_LIT:1.0>, seed=None):<DEDENT>
<EOL>random.seed(seed)<EOL>tmptree = TreeNode()<EOL>tmptree.populate(ntips)<EOL>self = toytree.tree(newick=tmptree.write())<EOL>self = (<EOL>self<EOL>.ladderize()<EOL>.mod.make_ultrametric()<EOL>.mod.node_scale_root_height(treeheight)<EOL>)<EOL>nidx = list(range(self.ntips))<EOL>random.shuffle(nidx)<EOL>for tidx, node in enumerate(self.treenode.get_leaves()):<EOL><INDENT>node.name = "<STR_LIT>".format(nidx[tidx])<EOL><DEDENT>self._coords.update()<EOL>return self<EOL>
Returns a random tree topology w/ N tips and a root height set to
1 or a user-entered treeheight value. Descendant nodes are evenly 
spaced between the root and time 0.

Parameters
-----------
ntips (int):
    The number of tips in the randomly generated tree

treeheight(float):
    Scale tree height (all edges) so that root is at this height.

seed (int):
    Random number generator seed.