Beispiel #1
0
 def test_expr_with_surrounding_braces(self):
     expr = '{a,b}c{d,e}'
     expected = 'acd ace bcd bce'
     self.assertEqual(parse(expr), expected)
Beispiel #2
0
 def test_expr_with_braces_only(self):
     expr = '{a,b}{c,d}{f,g}'
     expected = 'acf acg adf adg bcf bcg bdf bdg'
     self.assertEqual(parse(expr), expected)
Beispiel #3
0
 def test_expr_with_deeply_nested_braces(self):
     expr = 'a{b,c{d,e{f,g{h,i{j,k{l,m}}}}}}'
     expected = 'ab acd acef acegh acegij acegikl acegikm'
     self.assertEqual(parse(expr), expected)
Beispiel #4
0
 def test_expr_with_braces_in_front(self):
     expr = '{foo,bar}baz'
     expected = 'foobaz barbaz'
     self.assertEqual(parse(expr), expected)
Beispiel #5
0
 def test_expr_with_opening_braces_at_end(self):
     expr = 'foo{{{'
     expected = 'foo{{{'
     self.assertEqual(parse(expr), expected)
Beispiel #6
0
 def test_expr_with_nested_and_unnested_braces(self):
     expr = 'a{b,c{d,e,f}g,h}ij{k,l}'
     expected = 'abijk abijl acdgijk acdgijl acegijk acegijl acfgijk acfgijl ahijk ahijl'
     self.assertEqual(parse(expr), expected)
Beispiel #7
0
 def test_expr_with_one_set_of_braces_with_trailing_characters(self):
     expr = 'foo{bar,baz}qux'
     expected = 'foobarqux foobazqux'
     self.assertEqual(parse(expr), expected)
Beispiel #8
0
 def test_expr_with_empty_and_nonempty_braces(self):
     expr = 'a{}b{c,d}e{}f'
     expected = 'a{}bce{}f a{}bde{}f'
     self.assertEqual(parse(expr), expected)
Beispiel #9
0
 def test_expr_with_empty_string_and_word_between_commas_in_braces(self):
     expr = 'foo{,bar,}baz'
     expected = 'foobaz foobarbaz foobaz'
     self.assertEqual(parse(expr), expected)
Beispiel #10
0
 def test_expr_without_braces(self):
     expr = 'foo'
     expected = 'foo'
     self.assertEqual(parse(expr), expected)
Beispiel #11
0
 def test_expr_with_empty_string_between_commas_in_braces(self):
     expr = 'foo{,}bar'
     expected = 'foobar foobar'
     self.assertEqual(parse(expr), expected)
Beispiel #12
0
 def test_expr_with_invalid_surrounding_braces(self):
     expr = '}}}foo{{{'
     expected = '}}}foo{{{'
     self.assertEqual(parse(expr), expected)
Beispiel #13
0
 def test_expr_with_closing_braces_at_end(self):
     expr = 'foo}}}'
     expected = 'foo}}}'
     self.assertEqual(parse(expr), expected)
Beispiel #14
0
 def test_expr_with_braces_without_comma(self):
     expr = 'foo{bar.baz}qux'
     expected = 'foo{bar.baz}qux'
     self.assertEqual(parse(expr), expected)
Beispiel #15
0
 def test_expr_with_nested_braces(self):
     expr = 'this{foo,bar{baz,qux}}'
     expected = 'thisfoo thisbarbaz thisbarqux'
     self.assertEqual(parse(expr), expected)
Beispiel #16
0
 def test_expr_with_empty_braces(self):
     expr = 'foo{}bar'
     expected = 'foo{}bar'
     self.assertEqual(parse(expr), expected)
Beispiel #17
0
 def test_expr_with_multiple_unnested_braces(self):
     expr = 'a{b,c}d{e,f,g}hi'
     expected = 'abdehi abdfhi abdghi acdehi acdfhi acdghi'
     self.assertEqual(parse(expr), expected)
Beispiel #18
0
 def test_expr_with_opening_braces_in_front(self):
     expr = '{{{foo'
     expected = '{{{foo'
     self.assertEqual(parse(expr), expected)
Beispiel #19
0
 def test_expr_with_closing_braces_in_front(self):
     expr = '}}}foo'
     expected = '}}}foo'
     self.assertEqual(parse(expr), expected)