sentence_io_test.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import os
  2. import tensorflow as tf
  3. from tensorflow.python.framework import test_util
  4. from tensorflow.python.platform import googletest
  5. from dragnn.python import sentence_io
  6. from syntaxnet import sentence_pb2
  7. import syntaxnet.load_parser_ops
  8. FLAGS = tf.app.flags.FLAGS
  9. if not hasattr(FLAGS, 'test_srcdir'):
  10. FLAGS.test_srcdir = ''
  11. if not hasattr(FLAGS, 'test_tmpdir'):
  12. FLAGS.test_tmpdir = tf.test.get_temp_dir()
  13. class ConllSentenceReaderTest(test_util.TensorFlowTestCase):
  14. def setUp(self):
  15. # This dataset contains 54 sentences.
  16. self.filepath = os.path.join(
  17. FLAGS.test_srcdir,
  18. 'syntaxnet/testdata/mini-training-set')
  19. self.batch_size = 20
  20. def assertParseable(self, reader, expected_num, expected_last):
  21. sentences, last = reader.read()
  22. self.assertEqual(expected_num, len(sentences))
  23. self.assertEqual(expected_last, last)
  24. for s in sentences:
  25. pb = sentence_pb2.Sentence()
  26. pb.ParseFromString(s)
  27. self.assertGreater(len(pb.token), 0)
  28. def testReadFirstSentence(self):
  29. reader = sentence_io.ConllSentenceReader(self.filepath, 1)
  30. sentences, last = reader.read()
  31. self.assertEqual(1, len(sentences))
  32. pb = sentence_pb2.Sentence()
  33. pb.ParseFromString(sentences[0])
  34. self.assertFalse(last)
  35. self.assertEqual(
  36. u'I knew I could do it properly if given the right kind of support .',
  37. pb.text)
  38. def testReadFromTextFile(self):
  39. reader = sentence_io.ConllSentenceReader(self.filepath, self.batch_size)
  40. self.assertParseable(reader, self.batch_size, False)
  41. self.assertParseable(reader, self.batch_size, False)
  42. self.assertParseable(reader, 14, True)
  43. self.assertParseable(reader, 0, True)
  44. self.assertParseable(reader, 0, True)
  45. def testReadAndProjectivize(self):
  46. reader = sentence_io.ConllSentenceReader(
  47. self.filepath, self.batch_size, projectivize=True)
  48. self.assertParseable(reader, self.batch_size, False)
  49. self.assertParseable(reader, self.batch_size, False)
  50. self.assertParseable(reader, 14, True)
  51. self.assertParseable(reader, 0, True)
  52. self.assertParseable(reader, 0, True)
  53. if __name__ == '__main__':
  54. googletest.main()