def main(): parser = argparse.ArgumentParser(description='Simple sort program') parser.add_argument('-i', metavar='in-file', required=True, type=argparse.FileType('r'), help='input file of strings to sort, one per line') parser.add_argument('-o', metavar='out-file', required=True, type=argparse.FileType('w'), help='output file for sorted strings, one per line') # Create URL validation options # Get available functions to use for url validation choices # from the list of functions defined in __init__.py # url_validation_choices = tuple(url_validation_fns.keys()) # Set a default URL validation function # if 'all' in url_validation_fns: default_url_validation_choice = 'all' else: default_url_validation_choice = url_validation_choices[0] # Add command line argument options to parser parser.add_argument('--validate-fn', dest='validate_fn', choices=url_validation_choices, default=default_url_validation_choice, help='enable url validation type.') # Get available sort functions to use for argument choices choices = tuple(sort_fns.keys()) if 'selectionsort' in sort_fns: default = 'selectionsort' else: default = choices[0] parser.add_argument('--sort-fn', dest='sort_fn', choices=choices, default=default, help='sort function to use') # Read parsed arguments results = parser.parse_args() infile = results.i outfile = results.o sort_fn = results.sort_fn url_validate_fn = results.validate_fn # read lines try: lines = infile.readlines() except IOError, e: parser.error(str(e))
def run_all_algorithms(self, lst): ''' This function exercise sort for all algorithms ''' def run_sort(sort_fn): copy = list(lst) sort_fn(copy) return copy # want to filter out the nosort function func = {} for key in sort_fns.keys(): if str(key) != 'nosort': func[key] = sort_fns[key] results = map(run_sort, func.values()) for result in results[1:]: self.assertEqual(results[0], result) return results[0]