Path 1: 67 calls (0.7)

[98] (15) [48] (13) [3] (5) [28] (4) [78] (3) [8] (3) [90] (3) [14] (2) [89] (2) [12] (2)

'╰────────────────────────────────────────────────╯' (13) '╰──────────────────────────────────────────────────────────────────────────────────────────...

1def get_bottom(self, widths: Iterable[int]) -> str:
2        """Get the bottom of a simple box.
3
4        Args:
5            widths (List[int]): Widths of columns.
6
7        Returns:
8            str: A string of box characters.
9        """
10
11        parts: List[str] = []
12        append = parts.append
13        append(self.bottom_left)
14        for last, width in loop_last(widths):
15            append(self.bottom * width)
16            if not last:
17                append(self.bottom_divider)
18        append(self.bottom_right)
19        return "".join(parts)
            

Path 2: 29 calls (0.3)

[3, 3] (5) [22, 17, 5] (3) [22, 17, 5, 10] (3) [5, 5] (3) [6, 6] (2) [1, 2, 3] (1) [15, 14] (1) [23, 6] (1) [6, 0, 0] (1) [11, 0, 0] (1)

'└──────────────────────┴─────────────────┴─────┘' (3) '└──────────────────────┴─────────────────┴─────┴──────────┘' (3) '└─────┴─────┘' (3) '+-------...

1def get_bottom(self, widths: Iterable[int]) -> str:
2        """Get the bottom of a simple box.
3
4        Args:
5            widths (List[int]): Widths of columns.
6
7        Returns:
8            str: A string of box characters.
9        """
10
11        parts: List[str] = []
12        append = parts.append
13        append(self.bottom_left)
14        for last, width in loop_last(widths):
15            append(self.bottom * width)
16            if not last:
17                append(self.bottom_divider)
18        append(self.bottom_right)
19        return "".join(parts)