def METHOD_NAME(options):
    # Create the ambient space state space for the problem.
    rvss = ob.RealVectorStateSpace(3)
    bounds = ob.RealVectorBounds(3)
    bounds.setLow(-(options.outer + options.inner))
    bounds.setHigh(options.outer + options.inner)
    rvss.setBounds(bounds)
    # Create our constraint.
    constraint = TorusConstraint(options.outer, options.inner, options.maze)
    cp = ConstrainedProblem(options.space, rvss, constraint, options)
    start, goal = constraint.getStartAndGoalStates()
    print("Start = ", start)
    print("Goal = ", goal)
    sstart = ob.State(cp.css)
    sgoal = ob.State(cp.css)
    for i in range(3):
        sstart[i] = start[i]
        sgoal[i] = goal[i]
    cp.setStartAndGoalStates(sstart, sgoal)
    cp.ss.setStateValidityChecker(ob.StateValidityCheckerFn(partial(
        TorusConstraint.isValid, constraint)))
    planners = options.planner.split(",")
    if not options.bench:
        torusPlanningOnce(cp, planners[0], options.output)
    else:
        torusPlanningBench(cp, planners)