def test_fullcapture_simple(self): flags = self.flags #fullcapture tests for captures of fixed length pattern = 'lpeg.C(lpeg.P("a"))' #captures exactly the string "a" res = processcaptures(runbypattern(pattern, "a", flags).captures, "a", flags=flags).split() assert res == ["a"] res = processcaptures(runbypattern(pattern, "", flags).captures, "", flags=flags).split() assert res == []
def test_processcapture_full_position(self): flags = self.flags pattern = 'lpeg.P"a"^0*lpeg.Cp()' #captures the position of the end of a string of "a"s inputstring = "aaaa" captures = runbypattern(pattern, inputstring, flags).captures assert processcaptures(captures, inputstring).split() == ["POSITION:4"]
def test_opencapture_simple_closecapture(self): flags = self.flags pattern = 'lpeg.C(lpeg.R("09")^0)' #captures a number captures = runbypattern(pattern, "123", flags).captures assert captures is not None assert processcaptures(captures, "123").split() == ["123"]
def test_fullcapture_position(self): flags = self.flags pattern = 'lpeg.P"a"^0*lpeg.Cp()' #captures the position of the end of a string of "a"s vmout = runbypattern(pattern, "a", flags=flags) assert processcaptures(vmout.captures, "a").split() == ["POSITION:1"] runbypattern(pattern, "b", flags=flags) runbypattern(pattern, "", flags=flags)
def test_processcapture_open_simple(self): flags = self.flags pattern = 'lpeg.R("09")^0 * lpeg.C( lpeg.R("az")) * lpeg.R("09")^0' #captures a number #followed by a letter #followed by a number inputstring = "123a567" captures = runbypattern(pattern, inputstring, flags).captures assert processcaptures(captures, inputstring).split() == ["a"]
def test_opencapture_simple_closecapture_search(self): flags = self.flags pattern = 'lpeg.P{ lpeg.C(lpeg.R("09")^1) + 1 * lpeg.V(1)}^0' #searches text for numbers input = "1h12h999x" captures = runbypattern(pattern, input, flags).captures #print captures assert captures is not None assert processcaptures(captures, input).split() == ["999", "12", "1"]
def test_fullcapture_simple_2(self): flags = self.flags pattern = 'lpeg.C(lpeg.P("ab"))' #captures exactly the string "ab" runbypattern(pattern, "", flags=flags) runbypattern(pattern, "a", flags=flags) vmout = runbypattern(pattern, "ab", flags=flags) assert processcaptures(vmout.captures, "ab").split() == ["ab"] runbypattern(pattern, "banana", flags)