From 018b272d4205efe520b31adeceb3ce143aaad308 Mon Sep 17 00:00:00 2001 From: "jordi.saludes" Date: Sun, 13 Jun 2010 19:15:19 +0000 Subject: [PATCH] Added unit test. --- contrib/py-bindings/script.py | 11 ---------- contrib/py-bindings/test.py | 40 +++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 11 deletions(-) delete mode 100644 contrib/py-bindings/script.py create mode 100644 contrib/py-bindings/test.py diff --git a/contrib/py-bindings/script.py b/contrib/py-bindings/script.py deleted file mode 100644 index 6eb12d5e1..000000000 --- a/contrib/py-bindings/script.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python -import gf -query = gf.read_pgf("Query.pgf") -lang = gf.read_language('QueryEng') -cat = query.startcat() -print 'start category:', cat -print 'language is:', lang -lexed = "is 2 prime" -print "Parsing '%s':" % lexed -for e in query.parse(lexed, lang): - print '\t',e diff --git a/contrib/py-bindings/test.py b/contrib/py-bindings/test.py new file mode 100644 index 000000000..a4e8edf3b --- /dev/null +++ b/contrib/py-bindings/test.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +import gf +import unittest + +import re +hexre = re.compile('0x[0-9a-f]+:[ ]*') +def rmprefix(obj): + s = `obj` + m = hexre.match(s) + return m and s[m.end(0):] + +class TestParsing(unittest.TestCase): + def setUp(self): + self.lexed = [ + ('is 89 odd',"Odd (Number 89)"), + ('is 21 prime',"Prime (Number 21)")] + self.lang = 'QueryEng' + self.pgf = "Query.pgf" + def test_createPgf(self): + q = gf.read_pgf(self.pgf) + self.assertNotEqual(q,None) + def test_startcat(self): + pgf = gf.read_pgf(self.pgf) + cat = pgf.startcat() + self.assertEqual(rmprefix(cat),'Question') + def test_createLanguage(self): + l = gf.read_language(self.lang) + self.assertEqual(rmprefix(l),self.lang) + def test_parse(self): + s = self.lexed[0] + pgf = gf.read_pgf(self.pgf) + l = gf.read_language(self.lang) + for s,t in self.lexed: + ps = pgf.parse(s, l) + self.failUnless(ps) + pt = rmprefix(ps[0]) + self.assertEqual(pt,t) + +if __name__ == '__main__': + unittest.main()