def METHOD_NAME(n_dense_rows=0, row_density=1.0, n_dense_cols=0, col_density=1.0,
             n_blocks=0, min_shape=(1,1), max_shape=(2,2), n_random_pts=0):
    if n_blocks > 0:
        shapes, nrows, ncols = TotJacBuilder.make_blocks(n_blocks, min_shape, max_shape)
        builder = TotJacBuilder(nrows + n_dense_rows, ncols + n_dense_cols)
        builder.add_block_diag(shapes, n_dense_rows, n_dense_cols)
    else:
        nrows, ncols = (100, 50)
        builder = TotJacBuilder(nrows, ncols)
    J = builder.J
    shape = J.shape
    # dense rows
    for row in range(n_dense_rows):
        builder.add_row(row, density=row_density)
    # dense cols
    for col in range(n_dense_cols):
        builder.add_col(col, density=col_density)
    builder.add_random_points(n_random_pts)
    return builder