def main(): args = create_parser() if args.version: print(__version__) sys.exit() log = logging.StreamHandler(sys.stderr) log.setFormatter(logging.Formatter( '%(asctime)s [%(levelname)s <%(name)s>] %(message)s')) for module_ in (sys.modules[__name__], map_reduce): logger = logging.getLogger(module_.LOGGER_NAME) logger.setLevel(logging.DEBUG if args.debug else logging.ERROR) logger.addHandler(log) map_reduce.MapReduce( input_filename=args.filename, output_filename=args.output, separator=args.separator, temp_directory=args.temp, size_of_one_piece=args.piece, ignore_case=args.ignore_case, numeric_sort=args.numeric_sort, reverse=args.reverse, debug=args.debug)
def test_correct_thatNumbersNotRecognizedAdStringsAtAll(self): data = '\n'.join('94 96 6 97 99 100 0'.split()) self.create_file_for_sorting(data) map_reduce.MapReduce(input_filename=self.input_filename, output_filename=self.output_filename, separator='\n', temp_directory=self.directory, size_of_one_piece=4, ignore_case=False, numeric_sort=True, reverse=False, debug=False) actual = self.get_data_from_file(self.output_filename) self.assertEqual('0 6 94 96 97 99 100', actual.replace('\n', ' ', 10))
def test_correct_thatNumbersNotRecognizedAdStringsInPiece(self): data = '11 1 2' self.create_file_for_sorting(data) map_reduce.MapReduce(input_filename=self.input_filename, output_filename=self.output_filename, separator=' ', temp_directory=self.directory, size_of_one_piece=100, ignore_case=False, numeric_sort=True, reverse=False, debug=False) actual = self.get_data_from_file(self.output_filename) self.assertEqual('1 2 11', actual)
def test_correctSort_whenFileDivideIntoTwoPieces(self): data = '4 1 3 2' self.create_file_for_sorting(data) map_reduce.MapReduce(input_filename=self.input_filename, output_filename=self.output_filename, separator=' ', temp_directory=self.directory, size_of_one_piece=4, ignore_case=False, numeric_sort=True, reverse=False, debug=False) actual = self.get_data_from_file(self.output_filename) self.assertEqual('1 2 3 4', actual)
def test_correctSort_whenPositiveAndNegativeNumbers(self): data = '0 1 -1 2 -2 3 -3 4 -4 5 -5' self.create_file_for_sorting(data) map_reduce.MapReduce(input_filename=self.input_filename, output_filename=self.output_filename, separator=' ', temp_directory=self.directory, size_of_one_piece=4, ignore_case=False, numeric_sort=True, reverse=False, debug=False) actual = self.get_data_from_file(self.output_filename) self.assertEqual('-5 -4 -3 -2 -1 0 1 2 3 4 5', actual)
def test_correctSort_lenghtInputFileAndOutputFileAreEquals(self): data = '18 20 4 2 19 5 16 14 1 17 6 13 10 15 8 3 11 12 7 9' self.create_file_for_sorting(data) map_reduce.MapReduce(input_filename=self.input_filename, output_filename=self.output_filename, separator=' ', temp_directory=self.directory, size_of_one_piece=5, ignore_case=False, numeric_sort=True, reverse=False, debug=False) expected = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20' actual = self.get_data_from_file(self.output_filename) self.assertEqual(expected, actual)