Skip to content

Commit

Permalink
parsing: Test for escaped_split max_split param
Browse files Browse the repository at this point in the history
Testing the max_split param from function escaped_split().
  • Loading branch information
Makman2 committed Mar 2, 2015
1 parent 3a4e5ab commit 953cfd0
Showing 1 changed file with 87 additions and 0 deletions.
87 changes: 87 additions & 0 deletions coalib/tests/parsing/StringProcessingTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,93 @@ def test_escaped_split(self):
self.test_strings[i])
self.assertEqual(expected_results[i], return_value)

# Test the escaped_split() function while variating the max_split
# parameter.
def test_escaped_split_max_split(self):
separator_pattern = "'"

# Testing max_split = 1.
max_split = 1
expected_results = [
[r"out1 ", r"escaped-escape: \\ ' out2"],
[r"out1 ", r"escaped-quote: \' ' out2"],
[r"out1 ", r"escaped-anything: \X ' out2"],
[r"out1 ", r"two escaped escapes: \\\\ ' out2"],
[r"out1 ", r"escaped-quote at end: \'' out2"],
[r"out1 ", r"escaped-escape at end: \\' out2"],
[r"out1 ", r"str1' out2 'str2' out2"],
[r"out1 \' ", r"str1' out2 'str2' out2"],
[r"out1 \\\' ", r"str1' out2 'str2' out2"],
[r"out1 \\ ", r"str1' out2 'str2' out2"],
[r"out1 \\\\ ", r"str1' out2 'str2' out2"],
[r"out1 " + 2 * self.bs, r"str1' out2 'str2' out2"],
[r"out1 " + 4 * self.bs, r"str1' out2 'str2' out2"],
[r"out1 ", r"str1''str2''str3' out2"]
]

for i in range(0, len(expected_results)):
# Execute function under test.
return_value = escaped_split(separator_pattern,
self.test_strings[i],
max_split)
self.assertEqual(expected_results[i], return_value)

# Testing max_split = 2.
max_split = 2
expected_results = [
[r"out1 ", r"escaped-escape: \\ ", r" out2"],
[r"out1 ", r"escaped-quote: \' ", r" out2"],
[r"out1 ", r"escaped-anything: \X ", r" out2"],
[r"out1 ", r"two escaped escapes: \\\\ ", r" out2"],
[r"out1 ", r"escaped-quote at end: \'", r" out2"],
[r"out1 ", r"escaped-escape at end: " + 2 * self.bs, r" out2"],
[r"out1 ", r"str1", r" out2 'str2' out2"],
[r"out1 \' ", r"str1", r" out2 'str2' out2"],
[r"out1 \\\' ", r"str1", r" out2 'str2' out2"],
[r"out1 \\ ", r"str1", r" out2 'str2' out2"],
[r"out1 \\\\ ", r"str1", r" out2 'str2' out2"],
[r"out1 " + 2 * self.bs, r"str1", r" out2 'str2' out2"],
[r"out1 " + 4 * self.bs, r"str1", r" out2 'str2' out2"],
[r"out1 ", r"str1", r"'str2''str3' out2"]
]

for i in range(0, len(expected_results)):
# Execute function under test.
return_value = escaped_split(separator_pattern,
self.test_strings[i],
max_split)
self.assertEqual(expected_results[i], return_value)

# Testing max_split = 10.
# For the given test string this result should be equal with defining
# max_split = 0, since we haven't 10 separators in a test string.
max_split = 10
expected_results = [
[r"out1 ", r"escaped-escape: \\ ", r" out2"],
[r"out1 ", r"escaped-quote: \' ", r" out2"],
[r"out1 ", r"escaped-anything: \X ", r" out2"],
[r"out1 ", r"two escaped escapes: \\\\ ", r" out2"],
[r"out1 ", r"escaped-quote at end: \'", r" out2"],
[r"out1 ", r"escaped-escape at end: " + 2 * self.bs, r" out2"],
[r"out1 ", r"str1", r" out2 ", r"str2", r" out2"],
[r"out1 \' ", r"str1", r" out2 ", r"str2", r" out2"],
[r"out1 \\\' ", r"str1", r" out2 ", r"str2", r" out2"],
[r"out1 \\ ", r"str1", r" out2 ", r"str2", r" out2"],
[r"out1 \\\\ ", r"str1", r" out2 ", r"str2", r" out2"],
[r"out1 " + 2 * self.bs, r"str1", r" out2 ", r"str2",
r" out2"],
[r"out1 " + 4 * self.bs, r"str1", r" out2 ", r"str2",
r" out2"],
[r"out1 ", r"str1", r"", r"str2", r"", r"str3", r" out2"]
]

for i in range(0, len(expected_results)):
# Execute function under test.
return_value = escaped_split(separator_pattern,
self.test_strings[i],
max_split)
self.assertEqual(expected_results[i], return_value)

# Test the basic unescaped_search_in_between() functionality.
def test_unescaped_search_in_between(self):
begin_sequence = "'"
Expand Down

0 comments on commit 953cfd0

Please sign in to comment.