summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2008-01-05 08:34:56 +0000
committerptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2008-01-05 08:34:56 +0000
commit1dd59976cf8ca4b176420b2734048dbd61cf50f3 (patch)
tree87b90aefb4fe4cb4da02d67b2c589b5900499384
parent006d954bdc50599c251167846cdab99b7c3f46e4 (diff)
downloadpyparsing-1dd59976cf8ca4b176420b2734048dbd61cf50f3.tar.gz
Added unit test for WordStart and WordEnd classes
git-svn-id: svn://svn.code.sf.net/p/pyparsing/code/src@145 9bf210a0-9d2d-494c-87cf-cfb32e7dff7b
-rw-r--r--unitTests.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/unitTests.py b/unitTests.py
index b557fba..af2c114 100644
--- a/unitTests.py
+++ b/unitTests.py
@@ -1832,6 +1832,48 @@ class WithAttributeParseActionTest(ParseTestCase):
print result.dump()
assert result.asList() == expected, "Failed test, expected %s, got %s" % (expected, result.asList())
+class WordBoundaryExpressionsTest(ParseTestCase):
+ def runTest(self):
+ from pyparsing import WordEnd, WordStart, oneOf
+
+ ws = WordStart()
+ we = WordEnd()
+ vowel = oneOf(list("AEIOUY"))
+ consonant = oneOf(list("BCDFGHJKLMNPQRSTVWXZ"))
+
+ leadingVowel = ws + vowel
+ trailingVowel = vowel + we
+ leadingConsonant = ws + consonant
+ trailingConsonant = consonant + we
+
+ bnf = leadingVowel | trailingVowel
+
+ tests = """\
+ ABC DEF GHI
+ JKL MNO PQR
+ STU VWX YZ """.splitlines()
+
+ expectedResult = [
+ [['D', 'G'], ['A'], ['C', 'F'], ['I'], ['A', 'I']],
+ [['J', 'M', 'P'], [], ['L', 'R'], ['O'], ['O']],
+ [['S', 'V'], ['Y'], ['X', 'Z'], ['U'], ['U', 'Y']],
+ ]
+
+ for t,expected in zip(tests, expectedResult):
+ print t
+ results = map(lambda e: flatten(e.searchString(t).asList()),
+ [
+ leadingConsonant,
+ leadingVowel,
+ trailingConsonant,
+ trailingVowel,
+ bnf,
+ ]
+ )
+ print results
+ assert results==expected,"Failed WordBoundaryTest, expected %s, got %s" % (expected,results)
+ print
+
def makeTestSuite():
suite = TestSuite()
@@ -1874,6 +1916,7 @@ def makeTestSuite():
suite.addTest( KeepOriginalTextTest() )
suite.addTest( PackratParsingCacheCopyTest() )
suite.addTest( WithAttributeParseActionTest() )
+ suite.addTest( WordBoundaryExpressionsTest() )
suite.addTest( MiscellaneousParserTests() )
if TEST_USING_PACKRAT: