summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/f2py/tests/test_crackfortran.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/numpy/f2py/tests/test_crackfortran.py b/numpy/f2py/tests/test_crackfortran.py
index 73ac4e276..fc3ab561e 100644
--- a/numpy/f2py/tests/test_crackfortran.py
+++ b/numpy/f2py/tests/test_crackfortran.py
@@ -1,5 +1,6 @@
import importlib
import codecs
+import time
import unicodedata
import pytest
import numpy as np
@@ -276,3 +277,19 @@ class TestUnicodeComment(util.F2PyTest):
)
def test_encoding_comment(self):
self.module.foo(3)
+
+class TestNameArgsPatternBacktracking:
+ def test_nameargspattern_backtracking():
+ last_time = 0.
+ trials_per_count = 32
+ start_reps, end_reps = 10, 16
+ for ii in range(start_reps, end_reps):
+ atbindat = '@)@bind@(@' * ii
+ total_time = 0
+ for _ in range(trials_per_count):
+ t0 = time.perf_counter()
+ crackfortran.nameargspattern.search(atbindat)
+ total_time += (time.perf_counter() - t0)
+ if ii > start_reps:
+ assert total_time < 1.9 * last_time, f'Going from {ii - 1} to {ii} approximately doubled time'
+ last_time = total_time \ No newline at end of file