Ejemplo n.º 1
0
    def test_movement_index(self):
        for tracetype in ["T", "ICH", "CL"]:
            print(tracetype)
            # Regular trace
            t = T.parse("(NP *%s*-1)" % (tracetype,))
            self.assertEqual(t.metadata.index, 1)
            self.assertEqual(t.metadata.idx_type, util.IDX_REGULAR)
            self.assertEqual(t.text, "*%s*" % (tracetype,))
            self.assertEqual(t.label, "NP")

            # NB: traces cannot be gaps!
            t = T.parse("(NP *%s*=1)" % (tracetype,))
            self.assertIsNone(t.metadata.index)
            self.assertIsNone(t.metadata.idx_type)
            self.assertEqual(t.text, "*%s*=1" % (tracetype,))
            self.assertEqual(t.label, "NP")

            # Invalid trace
            t = T.parse("(NP *%s*-X)" % (tracetype,))
            self.assertIsNone(t.metadata.index)
            self.assertIsNone(t.metadata.idx_type)
            self.assertEqual(t.text, "*%s*-X" % (tracetype,))
            self.assertEqual(t.label, "NP")

            # Invalid trace (gap)
            t = T.parse("(NP *%s*=X)" % (tracetype,))
            self.assertIsNone(t.metadata.index)
            self.assertIsNone(t.metadata.idx_type)
            self.assertEqual(t.text, "*%s*=X" % (tracetype,))
            self.assertEqual(t.label, "NP")
Ejemplo n.º 2
0
 def test_str_indices(self):
     t = T.parse("( (IP=1 (FOO bar)))")
     self.assertEqual(str(t), "( (IP=1 (FOO bar)))")
     t = T.parse("( (IP (NP-SBJ *T*-1)))")
     self.assertEqual(str(t), "( (IP (NP-SBJ *T*-1)))")
     # TODO: the below is a real issue...what to do about leaves at the top
     # level???
     raise SkipTest
     t = T.parse("( (IP=1 foo))")
     self.assertEqual(str(t), "( (IP=1 foo))")
Ejemplo n.º 3
0
 def tree(self, line, cell):
     # TODO: are we sure we like this method of assigning the tree to a
     # variable?
     t = tree.parse(cell)
     if line is not None and line.isidentifier() and not keyword.iskeyword(line):
         self.shell.user_ns[line] = t
     return t
Ejemplo n.º 4
0
 def test_parse(self):
     self.assertIsNone(T.parse(""))
     self.assertIsNone(T.parse("  \n  "))
     self.assertRaises(T.ParseError, lambda: T.parse("(FOO"))
     self.assertRaises(T.ParseError, lambda: T.parse("(FOO))"))
     self.assertRaises(T.ParseError, lambda: T.parse("(FOO bar))"))
     self.assertRaises(T.ParseError, lambda: T.parse("(FOO)"))
     self.assertRaises(T.ParseError, lambda: T.parse("(FOO bar baz)"))
Ejemplo n.º 5
0
 def test_str(self):
     t = T.parse("""( (IP (NP (D I)) (VBP love) (NP (NPR Python) (NPR programming))))""")
     s = str(t)
     self.assertIsInstance(s, str)
     self.assertMultiLineEqual(s, textwrap.dedent(
         """
         ( (IP (NP (D I))
               (VBP love)
               (NP (NPR Python)
                   (NPR programming))))
         """).strip())
Ejemplo n.º 6
0
 def test_id(self):
     t = T.parse("""( (IP (NP (D I)) (VBP love)
     (NP (NPR Python) (NPR programming)))(ID foo))""")
     # Test that ID is parsed
     self.assertEqual(t.metadata["ID"], "foo")
     # Test that str works
     s = str(t)
     self.assertIsInstance(s, str)
     self.assertMultiLineEqual(s, textwrap.dedent(
         """
         ( (IP (NP (D I))
               (VBP love)
               (NP (NPR Python)
                   (NPR programming)))
           (ID foo))
         """).strip())
     t2 = T.parse("""( (ID foo)(IP (NP (D I)) (VBP love)
     (NP (NPR Python) (NPR programming))))""")
     # Test that the order of the ID node doesn't matter to parsing
     self.assertEqual(t2.metadata.id, "foo")
     self.assertEqual(t, t2)
     self.assertEqual(s, str(t2))
Ejemplo n.º 7
0
 def test_urtext(self):
     # TODO: woefully incomplete
     tree = "( (IP-MAT (X *T*) (X FOO) (X *con*) (XP (X bar) (X BAZ) (. .)) (CODE dddd)))"
     self.assertEqual(T.parse(tree).urtext, "FOO bar BAZ.")
Ejemplo n.º 8
0
 def test_eq(self):
     t = T.parse("(NP (N foo))")
     t2 = T.parse("(NP (N foo))")
     self.assertEqual(t, t2)
Ejemplo n.º 9
0
 def test_parse_1(self):
     t = T.parse("( (ID foo) (IP (NP (PRO it)) (VBP works)))")
     self.assertIsInstance(t, T.NonTerminal)
     self.assertEqual(t.metadata.id, 'foo')
     self.assertEqual(t, NT("IP", [NT("NP", [L("PRO", "it")]), L("VBP", "works")], {"ID": "foo"}))