Mercurial > hg
comparison contrib/bdiff-torture.py @ 43076:2372284d9457
formatting: blacken the codebase
This is using my patch to black
(https://github.com/psf/black/pull/826) so we don't un-wrap collection
literals.
Done with:
hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S
# skip-blame mass-reformatting only
# no-check-commit reformats foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D6971
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:45:02 -0400 |
parents | e05c141511dd |
children | 6000f5b25c9b |
comparison
equal
deleted
inserted
replaced
43075:57875cf423c9 | 43076:2372284d9457 |
---|---|
7 from mercurial import ( | 7 from mercurial import ( |
8 mdiff, | 8 mdiff, |
9 pycompat, | 9 pycompat, |
10 ) | 10 ) |
11 | 11 |
12 | |
12 def reducetest(a, b): | 13 def reducetest(a, b): |
13 tries = 0 | 14 tries = 0 |
14 reductions = 0 | 15 reductions = 0 |
15 print("reducing...") | 16 print("reducing...") |
16 while tries < 1000: | 17 while tries < 1000: |
17 a2 = "\n".join(l for l in a.splitlines() | 18 a2 = ( |
18 if random.randint(0, 100) > 0) + "\n" | 19 "\n".join(l for l in a.splitlines() if random.randint(0, 100) > 0) |
19 b2 = "\n".join(l for l in b.splitlines() | 20 + "\n" |
20 if random.randint(0, 100) > 0) + "\n" | 21 ) |
22 b2 = ( | |
23 "\n".join(l for l in b.splitlines() if random.randint(0, 100) > 0) | |
24 + "\n" | |
25 ) | |
21 if a2 == a and b2 == b: | 26 if a2 == a and b2 == b: |
22 continue | 27 continue |
23 if a2 == b2: | 28 if a2 == b2: |
24 continue | 29 continue |
25 tries += 1 | 30 tries += 1 |
30 reductions += 1 | 35 reductions += 1 |
31 tries = 0 | 36 tries = 0 |
32 a = a2 | 37 a = a2 |
33 b = b2 | 38 b = b2 |
34 | 39 |
35 print("reduced:", reductions, len(a) + len(b), | 40 print("reduced:", reductions, len(a) + len(b), repr(a), repr(b)) |
36 repr(a), repr(b)) | |
37 try: | 41 try: |
38 test1(a, b) | 42 test1(a, b) |
39 except Exception as inst: | 43 except Exception as inst: |
40 print("failed:", inst) | 44 print("failed:", inst) |
41 | 45 |
42 sys.exit(0) | 46 sys.exit(0) |
47 | |
43 | 48 |
44 def test1(a, b): | 49 def test1(a, b): |
45 d = mdiff.textdiff(a, b) | 50 d = mdiff.textdiff(a, b) |
46 if not d: | 51 if not d: |
47 raise ValueError("empty") | 52 raise ValueError("empty") |
48 c = mdiff.patches(a, [d]) | 53 c = mdiff.patches(a, [d]) |
49 if c != b: | 54 if c != b: |
50 raise ValueError("bad") | 55 raise ValueError("bad") |
51 | 56 |
57 | |
52 def testwrap(a, b): | 58 def testwrap(a, b): |
53 try: | 59 try: |
54 test1(a, b) | 60 test1(a, b) |
55 return | 61 return |
56 except Exception as inst: | 62 except Exception as inst: |
57 print("exception:", inst) | 63 print("exception:", inst) |
58 reducetest(a, b) | 64 reducetest(a, b) |
59 | 65 |
66 | |
60 def test(a, b): | 67 def test(a, b): |
61 testwrap(a, b) | 68 testwrap(a, b) |
62 testwrap(b, a) | 69 testwrap(b, a) |
70 | |
63 | 71 |
64 def rndtest(size, noise): | 72 def rndtest(size, noise): |
65 a = [] | 73 a = [] |
66 src = " aaaaaaaabbbbccd" | 74 src = " aaaaaaaabbbbccd" |
67 for x in pycompat.xrange(size): | 75 for x in pycompat.xrange(size): |
80 a = "\n".join(a) + "\n" | 88 a = "\n".join(a) + "\n" |
81 b = "\n".join(b2) + "\n" | 89 b = "\n".join(b2) + "\n" |
82 | 90 |
83 test(a, b) | 91 test(a, b) |
84 | 92 |
93 | |
85 maxvol = 10000 | 94 maxvol = 10000 |
86 startsize = 2 | 95 startsize = 2 |
87 while True: | 96 while True: |
88 size = startsize | 97 size = startsize |
89 count = 0 | 98 count = 0 |