<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def bifurcation_partition(bif_point):
    '''Calculate the partition at a bifurcation point

    We first ensure that the input point has only two children.

    The number of nodes in each child tree is counted. The partition is
    defined as the ratio of the largest number to the smallest number.'''
    assert len(bif_point.children) == 2, 'A bifurcation point must have exactly 2 children'

    n = float(sum(1 for _ in bif_point.children[0].ipreorder()))
    m = float(sum(1 for _ in bif_point.children[1].ipreorder()))
    return max(n, m) / min(n, m)