Package lepl :: Package regexp :: Package _test :: Module matchers
[hide private]
[frames] | no frames]

Source Code for Module lepl.regexp._test.matchers

 1   
 2  # The contents of this file are subject to the Mozilla Public License 
 3  # (MPL) Version 1.1 (the "License"); you may not use this file except 
 4  # in compliance with the License. You may obtain a copy of the License 
 5  # at http://www.mozilla.org/MPL/ 
 6  # 
 7  # Software distributed under the License is distributed on an "AS IS" 
 8  # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 
 9  # the License for the specific language governing rights and 
10  # limitations under the License. 
11  # 
12  # The Original Code is LEPL (http://www.acooke.org/lepl) 
13  # The Initial Developer of the Original Code is Andrew Cooke. 
14  # Portions created by the Initial Developer are Copyright (C) 2009-2010 
15  # Andrew Cooke (andrew@acooke.org). All Rights Reserved. 
16  # 
17  # Alternatively, the contents of this file may be used under the terms 
18  # of the LGPL license (the GNU Lesser General Public License, 
19  # http://www.gnu.org/licenses/lgpl.html), in which case the provisions 
20  # of the LGPL License are applicable instead of those above. 
21  # 
22  # If you wish to allow use of your version of this file only under the 
23  # terms of the LGPL License and not to allow others to use your version 
24  # of this file under the MPL, indicate your decision by deleting the 
25  # provisions above and replace them with the notice and other provisions 
26  # required by the LGPL License.  If you do not delete the provisions 
27  # above, a recipient may use your version of this file under either the 
28  # MPL or the LGPL License. 
29   
30  ''' 
31  Tests for the lepl.regexp.matchers module. 
32  ''' 
33   
34  #from logging import basicConfig, DEBUG 
35  from unittest import TestCase 
36   
37  from lepl import Separator, Regexp, NfaRegexp, DfaRegexp 
38   
39   
40  # pylint: disable-msg=C0103, C0111, C0301 
41  # (dude this is just a test) 
42   
43   
44 -class MatchersTest(TestCase):
45
46 - def test_nfa(self):
47 #basicConfig(level=DEBUG) 48 49 with Separator(~Regexp(r'\s*')): 50 word = NfaRegexp('[A-Z][a-z]*') 51 phrase = word[1:] 52 phrase.config.no_full_first_match() 53 54 results = list(phrase.match('Abc')) 55 assert len(results) == 3, results 56 assert results[0][0] == ['Abc'], results 57 assert results[1][0] == ['Ab'], results 58 assert results[2][0] == ['A'], results 59 60 results = list(phrase.match('AbcDef')) 61 assert len(results) == 6, results 62 assert results[0][0] == ['Abc', 'Def'], results 63 64 results = list(phrase.match('Abc Def')) 65 assert len(results) == 6, results
66
67 - def test_dfa(self):
68 #basicConfig(level=DEBUG) 69 70 with Separator(~Regexp(r'\s*')): 71 word = DfaRegexp('[A-Z][a-z]*') 72 phrase = word[1:] 73 phrase.config.no_full_first_match() 74 75 results = list(phrase.match('Abc')) 76 assert len(results) == 1, results 77 assert results[0][0] == ['Abc'], results 78 79 results = list(phrase.match('AbcDef')) 80 assert len(results) == 2, results 81 assert results[0][0] == ['Abc', 'Def'], results 82 83 results = list(phrase.match('Abc Def')) 84 assert len(results) == 2, results
85
86 - def test_full_first_match(self):
87 #basicConfig(level=DEBUG) 88 matcher = Regexp('a') 89 assert matcher.parse('a')
90