Beispiel #1
0
 def test_two_words(self):
     word = 'trolo !@#$%^&*_-"\';:+={}[]|.,?~`\\lo'
     self.assertTrue(sexpression_parser.is_start_of_word(word, 0))
     self.assertTrue(sexpression_parser.is_end_of_word(word, 5))
     self.assertTrue(sexpression_parser.is_start_of_word(word, 6))
     for idx in range(1, len(word)):
         if idx == 6:
             continue
         self.assertFalse(sexpression_parser.is_start_of_word(word, idx))
     self.assertTrue(sexpression_parser.is_end_of_word(word, len(word)))
     self.assertEqual(sexpression_parser.end_of_word(word, 0), 5)
     with self.assertRaises(Exception):
         sexpression_parser.end_of_word(word, 1)
     with self.assertRaises(Exception):
         sexpression_parser.children(word)
Beispiel #2
0
 def _add_text_sexp(self, sexp: Text):
   """Add new nodes to the S-expression graph."""
   if sexp in self:
     if self.to_text(to_node_id(sexp)) != sexp:
       tf.logging.fatal('Fingerprint collision in S-expression graph parser.')
     return
   children = sexpression_parser.children(sexp)
   node_id = to_node_id(sexp)
   self.children[node_id] = []
   self.parents[node_id] = set()
   self.labels[node_id] = None if children else sexp
   for c in children:
     self.add_sexp(c)
     child_id = to_node_id(c)
     self.children[node_id].append(child_id)
     self.parents[child_id].add(node_id)
Beispiel #3
0
 def test_docstring_example(self):
     sexp = '(word1 word1 (word1) () (() ()))'
     children = sexpression_parser.children(sexp)
     self.assertLen(children, 5)
     self.assertEqual(children,
                      ['word1', 'word1', '(word1)', '()', '(() ())'])
Beispiel #4
0
 def test_two_children(self):
     sexp = '(asdf asdf)'
     self.assertLen(sexpression_parser.children(sexp), 2)
Beispiel #5
0
 def test_single_child(self):
     sexp = '(asdf)'
     self.assertLen(sexpression_parser.children(sexp), 1)
Beispiel #6
0
 def test_grand_children(self):
     sexp = '(asdf1 (asdf2 asdf3))'
     self.assertLen(sexpression_parser.children(sexp), 2)
     self.assertLen(
         sexpression_parser.children(sexpression_parser.children(sexp)[1]),
         2)
Beispiel #7
0
 def test_invalid_sexp(self, string):
     with self.assertRaises(Exception):
         sexpression_parser.children(string)