Skip to content

Commit b9c19e9

Browse files
authored
Merge pull request #30 from codeflash-ai/codeflash/optimize-pr26-2025-02-27T02.40.10
⚡️ Speed up method `AssertCleanup.transform_asserts` by 46% in PR #26 (`clean_concolic_tests`)
2 parents 59250cc + 57afa8c commit b9c19e9

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

codeflash/code_utils/concolic_utils.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,23 @@ def transform_asserts(self, code: str) -> str:
1212

1313
for line in lines:
1414
transformed = self._transform_assert_line(line)
15-
if transformed is not None:
16-
result_lines.append(transformed)
17-
else:
18-
result_lines.append(line)
15+
result_lines.append(transformed if transformed is not None else line)
1916

2017
return "\n".join(result_lines)
2118

2219
def _transform_assert_line(self, line: str) -> Optional[str]:
2320
indent = line[: len(line) - len(line.lstrip())]
2421

25-
assert_match = re.match(r"\s*assert\s+(.*?)(?:\s*==\s*.*)?$", line)
22+
assert_match = self.assert_re.match(line)
2623
if assert_match:
2724
expression = assert_match.group(1).strip()
2825
if expression.startswith("not "):
2926
return f"{indent}{expression}"
3027

31-
expression = re.sub(r"[,;]\s*$", "", expression)
28+
expression = expression.rstrip(",;")
3229
return f"{indent}{expression}"
3330

34-
unittest_match = re.match(r"(\s*)self\.assert([A-Za-z]+)\((.*)\)$", line)
31+
unittest_match = self.unittest_re.match(line)
3532
if unittest_match:
3633
indent, assert_method, args = unittest_match.groups()
3734

@@ -65,6 +62,11 @@ def _split_top_level_args(self, args_str: str) -> list[str]:
6562

6663
return result
6764

65+
def __init__(self):
66+
# Pre-compiling regular expressions for faster execution
67+
self.assert_re = re.compile(r"\s*assert\s+(.*?)(?:\s*==\s*.*)?$")
68+
self.unittest_re = re.compile(r"(\s*)self\.assert([A-Za-z]+)\((.*)\)$")
69+
6870

6971
def clean_concolic_tests(test_suite_code: str) -> str:
7072
try:

0 commit comments

Comments
 (0)