aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/algorithms/scripts
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2026-06-18 16:38:25 +0200
committerEgor Tensin <egor@tensin.name>2026-06-18 16:38:25 +0200
commitb9043f0f204b6bd4526a283ad2217736fb96d8a1 (patch)
treefb2e0a96118327627319d915d8367b8d5a017aae /algorithms/scripts
parentplot_all.sh: try to get rid of matplotlib fix (diff)
downloadsorting-algorithms-b9043f0f204b6bd4526a283ad2217736fb96d8a1.tar.gz
sorting-algorithms-b9043f0f204b6bd4526a283ad2217736fb96d8a1.zip
workflows/ci: add Black formatting job
Diffstat (limited to 'algorithms/scripts')
-rwxr-xr-xalgorithms/scripts/plot.py91
-rwxr-xr-xalgorithms/scripts/test.py45
2 files changed, 86 insertions, 50 deletions
diff --git a/algorithms/scripts/plot.py b/algorithms/scripts/plot.py
index bb441e1..5eb8b16 100755
--- a/algorithms/scripts/plot.py
+++ b/algorithms/scripts/plot.py
@@ -12,25 +12,27 @@ from ..input_kind import InputKind
from ..params import AlgorithmParameters
from .. import 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):
+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 = AlgorithmParameters(
+ algorithm, min_len, max_len, input_kind=input_kind, iterations=iterations
+ )
params.plot_running_time(output_path)
@@ -67,8 +69,7 @@ def _format_algorithm(codename):
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())))
+ return descr + '\n'.join(map(_format_algorithm, sorted(registry.get_codenames())))
def _format_description():
@@ -78,7 +79,8 @@ def _format_description():
def _create_argument_parser():
return argparse.ArgumentParser(
description=_format_description(),
- formatter_class=argparse.RawDescriptionHelpFormatter)
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ )
def _parse_args(args=None):
@@ -86,27 +88,50 @@ def _parse_args(args=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')
+ 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)
diff --git a/algorithms/scripts/test.py b/algorithms/scripts/test.py
index ba7bf0a..42b1be8 100755
--- a/algorithms/scripts/test.py
+++ b/algorithms/scripts/test.py
@@ -10,8 +10,7 @@ import argparse
import sys
from ..input_kind import InputKind
-import ..registry as registry
-
+from .. import registry
_DEFAULT_INPUT_KIND = InputKind.AVERAGE
_DEFAULT_LENGTH = 100
@@ -50,8 +49,7 @@ def _format_algorithm(codename):
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())))
+ return descr + '\n'.join(map(_format_algorithm, sorted(registry.get_codenames())))
def _format_description():
@@ -61,7 +59,8 @@ def _format_description():
def _create_argument_parser():
return argparse.ArgumentParser(
description=_format_description(),
- formatter_class=argparse.RawDescriptionHelpFormatter)
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ )
def _parse_args(args=None):
@@ -69,18 +68,30 @@ def _parse_args(args=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('--input', '-i', dest='input_kind',
- choices=InputKind,
- type=_parse_input_kind,
- default=_DEFAULT_INPUT_KIND,
- help='specify input kind')
- parser.add_argument('--length', '-l', '-n', metavar='N',
- type=_parse_non_negative_integer,
- default=_DEFAULT_LENGTH,
- help='set input length')
+ parser.add_argument(
+ 'algorithm',
+ metavar='CODENAME',
+ choices=registry.get_codenames(),
+ help='algorithm codename',
+ )
+ 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(
+ '--length',
+ '-l',
+ '-n',
+ metavar='N',
+ type=_parse_non_negative_integer,
+ default=_DEFAULT_LENGTH,
+ help='set input length',
+ )
return parser.parse_args(args)