summaryrefslogtreecommitdiff
path: root/contrib/py-bindings
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/py-bindings')
-rw-r--r--contrib/py-bindings/script.py11
-rw-r--r--contrib/py-bindings/test.py40
2 files changed, 40 insertions, 11 deletions
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()