Path 1: 60 calls (0.42)

['', ' 1. Beautiful is beTTer than ugly.', ' 2. Explicit is better than implicit.', ' 3. Simple is better than complex.', ' 4. Complex is bett...

1 (13) 4 (7) 11 (7) 16 (4) 19 (4) 31 (4) 34 (4) 3 (3) 6 (3) 7 (3)

5 (9) 3 (7) 8 (6) 4 (5) 2 (5) 18 (4) 20 (4) 33 (4) 35 (4) 13 (4)

['', ' 1. Beautiful is better than ugly.', ' 3. Simple is better than complex.', ' 4. Complicated is better than complex.', ' 5. Flat is bet...

1 (13) 3 (9) 11 (7) 16 (4) 18 (4) 31 (4) 33 (4) 6 (3) 7 (3) 0 (3)

2 (9) 5 (9) 8 (6) 4 (5) 17 (4) 20 (4) 32 (4) 35 (4) 14 (3) 13 (3)

None (60) '? ^^\n' (34) '- 1. Beautiful is beTTer than ugly.' (18) '- 4. Complex is better than complicated.' (18) '+ 5....

1def _fancy_helper(self, a, alo, ahi, b, blo, bhi):
2        g = []
3        if alo < ahi:
4            if blo < bhi:
5                g = self._fancy_replace(a, alo, ahi, b, blo, bhi)
6            else:
7                g = self._dump('-', a, alo, ahi)
8        elif blo < bhi:
9            g = self._dump('+', b, blo, bhi)
10
11        yield from g
            

Path 2: 58 calls (0.4)

['line 0', '1234567890123456789012345689012345', 'line 1', 'line 2', 'line 3', 'line 4 changed', 'line 5 changed', 'line 6 changed', 'line 7', '...

1 (12) 0 (6) 5 (5) 6 (5) 16 (4) 31 (4) 3 (3) 7 (3) 8 (3) 14 (3)

1 (12) 0 (6) 5 (5) 6 (5) 16 (4) 31 (4) 3 (3) 7 (3) 8 (3) 14 (3)

['line 0', '1234567890123456789012345689012345', 'line 1', 'line 2 added', 'line 3', 'line 4 chanGEd', 'line 5a chanGed', 'line 6a changEd', 'l...

1 (12) 0 (6) 5 (5) 6 (5) 16 (4) 31 (4) 2 (3) 7 (3) 8 (3) 14 (3)

1 (12) 0 (6) 5 (5) 6 (5) 16 (4) 31 (4) 2 (3) 7 (3) 8 (3) 14 (3)

None (58)

1def _fancy_helper(self, a, alo, ahi, b, blo, bhi):
2        g = []
3        if alo < ahi:
4            if blo < bhi:
5                g = self._fancy_replace(a, alo, ahi, b, blo, bhi)
6            else:
7                g = self._dump('-', a, alo, ahi)
8        elif blo < bhi:
9            g = self._dump('+', b, blo, bhi)
10
11        yield from g
            

Path 3: 22 calls (0.15)

['', ' 1. Beautiful is beTTer than ugly.', ' 2. Explicit is better than implicit.', ' 3. Simple is better than complex.', ' 4. Complex is bett...

2 (7) 17 (4) 32 (4) 1 (4) 12 (1) 27 (1) 42 (1)

3 (7) 18 (4) 33 (4) 2 (4) 13 (1) 28 (1) 43 (1)

['', ' 1. Beautiful is better than ugly.', ' 3. Simple is better than complex.', ' 4. Complicated is better than complex.', ' 5. Flat is bet...

2 (7) 17 (4) 32 (4) 1 (4) 12 (1) 27 (1) 42 (1)

2 (7) 17 (4) 32 (4) 1 (4) 12 (1) 27 (1) 42 (1)

None (22) '- 2. Explicit is better than implicit.' (17) '- two\n' (3) '- 2. Explicit is better than ımplıcıt.' (1) '- 2. Explicit is better th...

1def _fancy_helper(self, a, alo, ahi, b, blo, bhi):
2        g = []
3        if alo < ahi:
4            if blo < bhi:
5                g = self._fancy_replace(a, alo, ahi, b, blo, bhi)
6            else:
7                g = self._dump('-', a, alo, ahi)
8        elif blo < bhi:
9            g = self._dump('+', b, blo, bhi)
10
11        yield from g
            

Path 4: 4 calls (0.03)

['one\n', 'two\n', 'three\n'] (3) [' 1. Beautiful is better than ugly.\n', ' 2. Explicit is better than implicit.\n', ' 3. Simple is better than co...

3 (3) 4 (1)

3 (3) 4 (1)

['ore\n', 'tree\n', 'emu\n'] (3) [' 1. Beautiful is better than ugly.\n', ' 3. Simple is better than complex.\n', ' 4. Complicated is better than...

2 (3) 3 (1)

3 (3) 4 (1)

None (4) '+ emu\n' (3) '+ 5. Flat is better than nested.\n' (1)

1def _fancy_helper(self, a, alo, ahi, b, blo, bhi):
2        g = []
3        if alo < ahi:
4            if blo < bhi:
5                g = self._fancy_replace(a, alo, ahi, b, blo, bhi)
6            else:
7                g = self._dump('-', a, alo, ahi)
8        elif blo < bhi:
9            g = self._dump('+', b, blo, bhi)
10
11        yield from g