Initial commit
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user