def METHOD_NAME(
    ball_initial_position, ball_initial_velocity, simulated_test_runner,
):
    # Setup Ball
    simulated_test_runner.simulator_proto_unix_io.send_proto(
        WorldState,
        create_world_state(
            [],
            blue_robot_locations=[],
            ball_location=ball_initial_position,
            ball_velocity=ball_initial_velocity,
        ),
    )
    # Setup Tactic
    params = AssignedTacticPlayControlParams()
    simulated_test_runner.blue_full_system_proto_unix_io.send_proto(
        AssignedTacticPlayControlParams, params
    )
    # Setup no tactics on the enemy side
    params = AssignedTacticPlayControlParams()
    simulated_test_runner.yellow_full_system_proto_unix_io.send_proto(
        AssignedTacticPlayControlParams, params
    )
    # expected ball position
    initial_v = ball_initial_velocity.length()
    # velocity at which ball starts to roll
    rolling_v = TRANSITION_FACTOR * initial_v
    time_until_roll = abs((rolling_v - initial_v) / SLIDING_ACCELERATION)
    time_until_stop = abs((rolling_v - STOPPING_SPEED) / ROLLING_ACCELERATION)
    d_slide = (initial_v + rolling_v) / 2 * time_until_roll
    d_roll = (rolling_v / 2) * time_until_stop
    total_distance = d_slide + d_roll
    ball_expected_position = (
        total_distance * ball_initial_velocity.normalize() + ball_initial_position
    )
    # Always Validation
    always_validation_sequence_set = [[NeverExcessivelyDribbles(),]]
    # Eventually Validation
    eventually_validation_sequence_set = [
        [BallEventuallyStopsInRegion([tbots.Circle(ball_expected_position, 0.1)]),]
    ]
    simulated_test_runner.run_test(
        test_timeout_s=8,
        inv_eventually_validation_sequence_set=eventually_validation_sequence_set,
        inv_always_validation_sequence_set=always_validation_sequence_set,
    )