From fba834a617d2d2905cfc84595de100f8a5368c0a Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sat, 6 Jun 2026 21:45:45 +0200 Subject: sort out scripts into proper directories --- plot.py | 119 ---------------------------------------------------------------- 1 file changed, 119 deletions(-) delete mode 100755 plot.py (limited to 'plot.py') diff --git a/plot.py b/plot.py deleted file mode 100755 index 5105e5f..0000000 --- a/plot.py +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright (c) 2015 Egor Tensin -# This file is part of the "Sorting algorithms" project. -# For details, see https://github.com/egor-tensin/sorting-algorithms. -# Distributed under the MIT License. - -import argparse -import sys - -from algorithms.input_kind import InputKind -from algorithms.params import AlgorithmParameters -import algorithms.registry as registry - - -_DEFAULT_ITERATIONS = 100 -_DEFAULT_INPUT_KIND = InputKind.AVERAGE -_DEFAULT_MIN_LENGTH = 0 -_DEFAULT_MAX_LENGTH = 200 - - -def plot_algorithm(algorithm, input_kind=_DEFAULT_INPUT_KIND, - min_len=_DEFAULT_MIN_LENGTH, - max_len=_DEFAULT_MAX_LENGTH, - iterations=_DEFAULT_ITERATIONS, - output_path=None): - - if isinstance(algorithm, str): - algorithm = registry.get(algorithm) - - params = AlgorithmParameters(algorithm, min_len, max_len, - input_kind=input_kind, - iterations=iterations) - params.plot_running_time(output_path) - - -def _parse_non_negative_integer(s): - try: - n = int(s) - except ValueError: - raise argparse.ArgumentTypeError('must be a non-negative integer: ' + str(s)) - if n < 0: - raise argparse.ArgumentTypeError('must be a non-negative integer') - return n - - -def _parse_positive_integer(s): - try: - n = int(s) - except ValueError: - raise argparse.ArgumentTypeError('must be a positive integer: ' + str(s)) - if n < 1: - raise argparse.ArgumentTypeError('must be a positive integer') - return n - - -def _parse_input_kind(s): - try: - return InputKind(s) - except ValueError: - raise argparse.ArgumentTypeError('invalid input kind: ' + str(s)) - - -def _format_algorithm(codename): - return '* {}: {}'.format(codename, registry.get(codename).display_name) - - -def _format_available_algorithms(): - descr = 'available algorithms (in the CODENAME: DISPLAY_NAME format):\n' - return descr + '\n'.join(map( - _format_algorithm, sorted(registry.get_codenames()))) - - -def _format_description(): - return _format_available_algorithms() - - -def _create_argument_parser(): - return argparse.ArgumentParser( - description=_format_description(), - formatter_class=argparse.RawDescriptionHelpFormatter) - - -def _parse_args(args=None): - if args is None: - args = sys.argv[1:] - parser = _create_argument_parser() - - parser.add_argument('algorithm', metavar='CODENAME', - choices=registry.get_codenames(), - help='algorithm codename') - parser.add_argument('--iterations', '-r', metavar='N', - type=_parse_positive_integer, - default=_DEFAULT_ITERATIONS, - help='set number of algorithm iterations') - parser.add_argument('--input', '-i', dest='input_kind', - choices=InputKind, - type=_parse_input_kind, default=_DEFAULT_INPUT_KIND, - help='specify input kind') - parser.add_argument('--min', '-a', metavar='N', dest='min_len', - type=_parse_non_negative_integer, - default=_DEFAULT_MIN_LENGTH, - help='set min input length') - parser.add_argument('--max', '-b', metavar='N', dest='max_len', - type=_parse_non_negative_integer, - default=_DEFAULT_MAX_LENGTH, - help='set max input length') - parser.add_argument('--output', '-o', metavar='PATH', dest='output_path', - help='set plot file path') - - return parser.parse_args(args) - - -def main(args=None): - plot_algorithm(**vars(_parse_args(args))) - - -if __name__ == '__main__': - main() -- cgit v1.3