1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # Copyright 2017 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- # ==============================================================================
- """Tests for SyntaxNet lexicon."""
- import os
- import os.path
- import tensorflow as tf
- from google.protobuf import text_format
- from dragnn.python import lexicon
- # Imported for FLAGS.tf_master, which is used in the lexicon module.
- from syntaxnet import parser_trainer
- from syntaxnet import task_spec_pb2
- import syntaxnet.load_parser_ops
- FLAGS = tf.app.flags.FLAGS
- if not hasattr(FLAGS, 'test_srcdir'):
- FLAGS.test_srcdir = ''
- if not hasattr(FLAGS, 'test_tmpdir'):
- FLAGS.test_tmpdir = tf.test.get_temp_dir()
- _EXPECTED_CONTEXT = r"""
- input { name: "word-map" Part { file_pattern: "/tmp/word-map" } }
- input { name: "tag-map" Part { file_pattern: "/tmp/tag-map" } }
- input { name: "tag-to-category" Part { file_pattern: "/tmp/tag-to-category" } }
- input { name: "lcword-map" Part { file_pattern: "/tmp/lcword-map" } }
- input { name: "category-map" Part { file_pattern: "/tmp/category-map" } }
- input { name: "char-map" Part { file_pattern: "/tmp/char-map" } }
- input { name: "char-ngram-map" Part { file_pattern: "/tmp/char-ngram-map" } }
- input { name: "label-map" Part { file_pattern: "/tmp/label-map" } }
- input { name: "prefix-table" Part { file_pattern: "/tmp/prefix-table" } }
- input { name: "suffix-table" Part { file_pattern: "/tmp/suffix-table" } }
- """
- class LexiconTest(tf.test.TestCase):
- def testCreateLexiconContext(self):
- expected_context = task_spec_pb2.TaskSpec()
- text_format.Parse(_EXPECTED_CONTEXT, expected_context)
- self.assertProtoEquals(
- lexicon.create_lexicon_context('/tmp'), expected_context)
- def testBuildLexicon(self):
- empty_input_path = os.path.join(FLAGS.test_tmpdir, 'empty-input')
- lexicon_output_path = os.path.join(FLAGS.test_tmpdir, 'lexicon-output')
- with open(empty_input_path, 'w'):
- pass
- # The directory may already exist when running locally multiple times.
- if not os.path.exists(lexicon_output_path):
- os.mkdir(lexicon_output_path)
- # Just make sure this doesn't crash; the lexicon builder op is already
- # exercised in its own unit test.
- lexicon.build_lexicon(lexicon_output_path, empty_input_path)
- if __name__ == '__main__':
- tf.test.main()
|