From 8940000ff79e018399a244469401ea5817182bbc Mon Sep 17 00:00:00 2001 From: Makman2 Date: Tue, 3 Mar 2015 22:30:02 +0100 Subject: [PATCH] parsing: Add test for escaped_search_in_between Test for the max_match feature. --- coalib/tests/parsing/StringProcessingTest.py | 87 ++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/coalib/tests/parsing/StringProcessingTest.py b/coalib/tests/parsing/StringProcessingTest.py index c502035b6c..a1774ceca8 100644 --- a/coalib/tests/parsing/StringProcessingTest.py +++ b/coalib/tests/parsing/StringProcessingTest.py @@ -507,6 +507,93 @@ def test_escaped_search_in_between(self): self.test_strings[i]) self.assertEqual(expected_results[i], return_value) + # Test the secaped_search_in_between() while variating the max_match + # parameter. + def test_escaped_search_in_between_max_match(self): + begin_sequence = "'" + end_sequence = "'" + + # Testing max_match = 1 + max_match = 1 + expected_results = [ + [r"escaped-escape: \\ "], + [r"escaped-quote: \' "], + [r"escaped-anything: \X "], + [r"two escaped escapes: \\\\ "], + [r"escaped-quote at end: \'"], + [r"escaped-escape at end: " + 2 * self.bs], + [r"str1"], + [r"str1"], + [r"str1"], + [r"str1"], + [r"str1"], + [r"str1"], + [r"str1"], + [r"str1"] + ] + + for i in range(0, len(expected_results)): + # Execute function under test. + return_value = escaped_search_in_between(begin_sequence, + end_sequence, + self.test_strings[i], + max_match) + self.assertEqual(expected_results[i], return_value) + + # Testing max_match = 2 + max_match = 2 + expected_results = [ + [r"escaped-escape: \\ "], + [r"escaped-quote: \' "], + [r"escaped-anything: \X "], + [r"two escaped escapes: \\\\ "], + [r"escaped-quote at end: \'"], + [r"escaped-escape at end: " + 2 * self.bs], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"] + ] + + for i in range(0, len(expected_results)): + # Execute function under test. + return_value = escaped_search_in_between(begin_sequence, + end_sequence, + self.test_strings[i], + max_match) + self.assertEqual(expected_results[i], return_value) + + # Testing max_match = 10 + max_match = 10 + expected_results = [ + [r"escaped-escape: \\ "], + [r"escaped-quote: \' "], + [r"escaped-anything: \X "], + [r"two escaped escapes: \\\\ "], + [r"escaped-quote at end: \'"], + [r"escaped-escape at end: " + 2 * self.bs], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2"], + [r"str1", r"str2", r"str3"] + ] + + for i in range(0, len(expected_results)): + # Execute function under test. + return_value = escaped_search_in_between(begin_sequence, + end_sequence, + self.test_strings[i], + max_match) + self.assertEqual(expected_results[i], return_value) + # Test the search_for() function. def test_search_for(self): # Match either "out1" or "out2".