Path 1: 28 calls (1.0)

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

4 (7) 19 (4) 34 (4) 3 (3) 9 (3) 11 (3) 0 (1) 14 (1) 29 (1) 44 (1)

5 (7) 20 (4) 35 (4) 4 (3) 10 (3) 13 (3) 1 (1) 15 (1) 30 (1) 45 (1)

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

3 (10) 18 (4) 33 (4) 9 (3) 11 (3) 0 (1) 13 (1) 28 (1) 43 (1)

5 (7) 20 (4) 35 (4) 4 (3) 10 (3) 13 (3) 1 (1) 15 (1) 30 (1) 45 (1)

'- 4. Complex is better than complicated.' (18) '+ 5. Flat is better than nested.' (18) '+ 4. Complicated is better than complex.' (17) '- li...

1def _plain_replace(self, a, alo, ahi, b, blo, bhi):
2        assert alo < ahi and blo < bhi
3        # dump the shorter block first -- reduces the burden on short-term
4        # memory if the blocks are of very different sizes
5        if bhi - blo < ahi - alo:
6            first  = self._dump('+', b, blo, bhi)
7            second = self._dump('-', a, alo, ahi)
8        else:
9            first  = self._dump('-', a, alo, ahi)
10            second = self._dump('+', b, blo, bhi)
11
12        for g in first, second:
13            yield from g