@@ -39,6 +39,24 @@ def generate_test_case_long(n: int) -> TestCaseT:
3939 return template , names
4040
4141
42+ def generate_test_case_simple_variables (n : int ) -> TestCaseT :
43+ """Simple test case with just variable substitutions."""
44+ template = " " .join (f"{{{{var{ i } }}}}" for i in range (n ))
45+ data = {f"var{ i } " : f"value{ i } " for i in range (n )}
46+ return template , data
47+
48+
49+ def generate_test_case_simple_sections (n : int ) -> TestCaseT :
50+ """Simple test case with basic sections."""
51+ template = ""
52+ data = {}
53+ for i in range (n ):
54+ section_name = f"section{ i } "
55+ template += f"{{{{#{ section_name } }}}}content{{{{/{ section_name } }}}}"
56+ data [section_name ] = True
57+ return template , data
58+
59+
4260def generate_test_case_nested (n : int ) -> TestCaseT :
4361 fake = Faker ()
4462
@@ -333,6 +351,8 @@ def render_function(_, obj):
333351 elif render_function_name == "mstache" :
334352 import mstache
335353
354+ # mstache.render() uses a default LRU cache for tokenization
355+ # so repeated calls benefit from caching automatically
336356 render_function = mstache .render
337357 else :
338358 assert_never (render_function_name )
@@ -364,6 +384,8 @@ def render_function(_, obj):
364384 generate_test_case_nested ,
365385 generate_test_case_long ,
366386 generate_test_case_random (1 ),
387+ generate_test_case_simple_variables ,
388+ generate_test_case_simple_sections ,
367389 ],
368390)
369391@pytest .mark .parametrize ("render_function_name" , t .get_args (RenderFunctionT ))
0 commit comments