Files

69 lines
1.8 KiB
Python
Raw Permalink Normal View History

2026-07-12 14:06:45 +04:00
import json
import sys
from cli.parse_args import parse_args
def main() -> int:
args = parse_args()
try:
if args.cmd == "hash":
from modes.hash_mode import HashMode
runner = HashMode()
result = runner.run(
variant=args.variant,
message=args.message,
salt=args.salt,
bytes=args.bytes,
)
elif args.cmd == "avalanche":
from modes.test_avalanche import AvalancheTest
runner = AvalancheTest()
result = runner.run(
variant=args.variant,
message=args.message,
salt=args.salt,
bytes=args.bytes,
)
elif args.cmd == "collisions":
from modes.test_collisions import CollisionsTest
runner = CollisionsTest()
result = runner.run(
variant=args.variant,
max_len=args.max_len,
alphabet=args.alphabet,
bytes=args.bytes,
)
elif args.cmd == "analyze":
from modes.analyze_uniformity import UniformityAnalyzer
runner = UniformityAnalyzer()
result = runner.run(
variant=args.variant,
count=args.count,
buckets=args.buckets,
)
else:
raise RuntimeError(f"Неизвестная команда: {args.cmd}")
# Печать результата
if result is not None:
if isinstance(result, (dict, list)):
print(json.dumps(result, ensure_ascii=False, indent=2))
else:
print(result)
return 0
except Exception as exc:
print(f"Ошибка: {exc}", file=sys.stderr)
return 1
if __name__ == "__main__":
main()