diff --git a/tests/test_parse.py b/tests/test_parse.py index 59e4193..600ac5a 100644 --- a/tests/test_parse.py +++ b/tests/test_parse.py @@ -20,6 +20,13 @@ ) +# Inserts an element at a random place in a list +def insert_random(draw, list, data): + pos = draw(integers(min_value=1, max_value=(len(list) - 1))) + new_data = list[0:pos] + [data] + list[pos:] + return new_data + + # Draws syntax and a syntax without whitespace in it @composite def draw_syntax_whitespace(draw): @@ -116,8 +123,7 @@ (tokens, _) = draw(draw_syntax_text_valid()) token = draw(draw_syntax_random()) assume(token.type != SyntaxType.TOKEN) - pos = draw(integers(min_value=1, max_value=(len(tokens) - 1))) - new_tokens = tokens[0:pos] + [token] + tokens[pos:] + new_tokens = insert_random(draw, tokens, token) return new_tokens @@ -128,8 +134,7 @@ def draw_syntax_text_invalid_extrastarttext(draw): (tokens, _) = draw(draw_syntax_text_valid()) start = draw(draw_token_by_value("StartText")) - pos = draw(integers(min_value=1, max_value=(len(tokens) - 1))) - new_tokens = tokens[0:pos] + [start] + tokens[pos:] + new_tokens = insert_random(draw, tokens, start) return new_tokens