def random_task(regions, settings, depth):
    name = next_name('task')
    rrs = random_region_requirements_no_alias(regions, settings)
    t = Task(name, rrs)
    t.logical_regions_created = random_logical_region_trees(t.name, settings)
    child_tasks = random_tasks(t.logical_regions_created, settings, depth+1)
    t.child_tasks = child_tasks
    return t
def random_case(test_num, settings):
    t = Task('top_level_task', [])
    logical_regions = random_logical_region_trees(t.name, settings)
    t.logical_regions_created = logical_regions
    t.child_tasks = random_tasks(t.logical_regions_created, settings, 0)
    t.decide_what_should_print()
    case = TestCase('test_' + str(test_num), t)
    return case
def random_task(regions, settings, depth, parent_rrs=[], parent_name=None):
    name = next_name( 'task' )
    region_requirements = random_region_requirements_no_alias(regions, settings)
    region_requirements += random_region_requirements_from_rrs_no_alias(parent_rrs, settings)
    # if parent_rrs:
        # region_requirements += parent_rrs
    # num_region_requirements_to_pass_on = int(len(region_requirements) * 0.5)
    # region_requirements = sample(region_requirements, num_region_requirements_to_pass_on)

    # Create task
    t = Task(name, region_requirements, parent_rrs)
    created_regions = random_logical_region_trees(t.name, settings)
    t.logical_regions_created = created_regions
    child_tasks = random_tasks(created_regions,
                               settings, depth+1,
                               parent_rrs=region_requirements,
                               parent_name=name)
    t.child_tasks = child_tasks
    return t