def test_null_or_ab(self): self.assertEqual(_pattern({ '': None, 'a': { 'b': { '': None } } }), '(?:ab)?+')
def test_optional_bc(self): self.assertEqual( _pattern( # ['abc', 'a'] {'a': { 'b': { '': None }, '': None }}), 'ab?+')
def test_a_or_b(self): self.assertEqual( _pattern( # ['a', 'b'] { 'a': { '': None }, 'b': { '': None } }), '[ba]')
def test_a_or_abc(self): self.assertEqual( _pattern(_plant_trie(['a', 'abc'])), 'a(?:bc)?+', )
def test_abc_or_dbc(self): self.assertEqual( _pattern(_plant_trie(['abc', 'dbc'])), '[da]bc', )
def test_ab(self): # ['ab'] self.assertEqual(_pattern({'a': {'b': {'': None}}}), 'ab')
def test_empty(self): # [''] self.assertEqual(_pattern({'': None}), '')
def test_a_or_abc_or_null(self): self.assertEqual( _pattern(_plant_trie(['', 'a', 'bc'])), '(?>bc|a)?+', )
def test_a_or_abc_or_null(): assert _pattern(_plant_trie(['', 'a', 'bc'])) == '(?>bc|a)?+'
def test_a_or_abc(): assert _pattern(_plant_trie(['a', 'abc'])) == 'a(?:bc)?+'
def test_null_or_ab(): assert _pattern({'': None, 'a': {'b': {'': None}}}) == '(?:ab)?+'
def test_abc_or_dbc(): assert _pattern(_plant_trie(['abc', 'dbc'])) == '[da]bc'
def test_optional_bc(): # ['abc', 'a'] assert _pattern({'a': {'b': {'': None}, '': None}}) == 'ab?+'
def test_a_or_b(): # ['a', 'b'] assert _pattern({'a': {'': None}, 'b': {'': None}}) == '[ba]'
def test_ab(): # ['ab'] assert _pattern({'a': {'b': {'': None}}}) == 'ab'
def test_pattern_empty(): # [''] assert _pattern({'': None}) == ''