diff options
| author | jordi.saludes <jordi.saludes@upc.edu> | 2011-12-07 18:09:33 +0000 |
|---|---|---|
| committer | jordi.saludes <jordi.saludes@upc.edu> | 2011-12-07 18:09:33 +0000 |
| commit | 75c6aa83cd16d1afd0e883833354877c1502166d (patch) | |
| tree | 6cf59ffe4c71b6de003517ba61ddba1841cb1815 /contrib/py-bindings/test.py | |
| parent | bb6905e36ff87d65cb8732ce5325a6a1bbbf6e31 (diff) | |
Added parser completions to py-bindings.
Diffstat (limited to 'contrib/py-bindings/test.py')
| -rw-r--r-- | contrib/py-bindings/test.py | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/contrib/py-bindings/test.py b/contrib/py-bindings/test.py index ebfa0a0c8..6ec3f77cc 100644 --- a/contrib/py-bindings/test.py +++ b/contrib/py-bindings/test.py @@ -7,7 +7,6 @@ import gf import unittest - samples = [ (['Odd', ['Number', 89]], {'eng': "is 89 odd", @@ -93,7 +92,7 @@ class TestParsing(unittest.TestCase): l = gf.read_language(self.lang) for abs,cnc in self.lexed: rabs = exp2str(abs) - ps = pgf.parse(cnc['eng'], l) + ps = pgf.parse(l, cnc['eng']) self.failUnless(ps) pt = rmprefix(ps[0]) self.assertEqual(pt,rabs) @@ -108,7 +107,7 @@ class TestLinearize(unittest.TestCase): def test_Linearize(self): l = self.lang for abs,cnc in self.samples: - ts = self.pgf.parse(cnc['eng'], l) + ts = self.pgf.parse(l, cnc['eng']) self.assertEqual(cnc['eng'],self.pgf.lin(l,ts[0])) class TestTranslate(unittest.TestCase): @@ -122,7 +121,7 @@ class TestTranslate(unittest.TestCase): for i,l in self.langs: for j,m in self.langs: if i==j: continue - parsed = self.pgf.parse(cnc[i],l) + parsed = self.pgf.parse(l, cnc[i]) assert len(parsed) == 1 lin = self.pgf.lin(m,parsed[0]) self.assertEqual(lin,cnc[j]) @@ -146,7 +145,7 @@ class TestUnapplyExpr(unittest.TestCase): lg = 'eng' lang = self.langs[lg] for abs,cnc in self.samples: - parsed = self.pgf.parse(cnc[lg],lang) + parsed = self.pgf.parse(lang, cnc[lg]) uparsed = self.deep_unapp(parsed[0]) self.assertEqual(abs,uparsed) @@ -154,7 +153,7 @@ class TestUnapplyExpr(unittest.TestCase): lg = 'eng' lang = self.langs[lg] cnc = self.samples[0][1] - parsed = self.pgf.parse(cnc[lg],lang) + parsed = self.pgf.parse(lang, cnc[lg]) exp = parsed[0] for t in 'Question Object Int'.split(): self.assertEqual(`exp.infer(self.pgf)`, t) @@ -163,5 +162,26 @@ class TestUnapplyExpr(unittest.TestCase): exp = uexp[1] +class TestComplete(unittest.TestCase): + def setUp(self): + self.lexed = samples + self.pgf = gf.read_pgf('Query.pgf') + self.langs = dict([(lang2iso(l),l) for l in self.pgf.languages()]) + + def test_complete(self): + for (_,d) in self.lexed: + for l,text in d.items(): + lang = self.langs[l] + for k in range(len(text)): + if text[k].isdigit() or text[k-1].isdigit(): # No completion for integer literals + continue + comps = self.pgf.complete(lang,text[:k]) + self.assertNotEqual(comps, [], + msg="while completing '%s^%s'" % (text[:k],text[k:])) + + self.assertTrue(any(w in text for w in comps), + msg="None of %s is in '%s'" % (comps,text)) + + if __name__ == '__main__': unittest.main() |
