"""Some quick tests that don't depend on data files or on pytest, for debugging the MS windows build issues.""" from __future__ import print_function, unicode_literals import unittest import re from spacy.lemmatizer import Lemmatizer from spacy.morphology import Morphology from spacy.strings import StringStore from spacy.vocab import Vocab from spacy.tokenizer import Tokenizer from spacy.syntax.arc_eager import ArcEager from spacy.tagger import Tagger, TaggerModel from spacy.syntax.parser import Parser, ParserModel from spacy.matcher import Matcher class TestStringStore(unittest.TestCase): def test_encode_decode(self): strings = StringStore() hello_id = strings[u'Hello'] world_id = strings[u'World'] self.assertNotEqual(hello_id, world_id) self.assertEqual(strings[hello_id], u'Hello') self.assertEqual(strings[world_id], u'World') self.assertEqual(strings[u'Hello'], hello_id) self.assertEqual(strings[u'World'], world_id) class TestMorphology(unittest.TestCase): def test_create(self): lemmatizer = Lemmatizer({}, {}, {}) strings = StringStore() lemmatizer = Lemmatizer({}, {}, {}) morphology = Morphology(strings, {}, lemmatizer) class TestVocab(unittest.TestCase): def test_create(self): vocab = Vocab() def test_get_lexeme(self): vocab = Vocab() lexeme = vocab[u'Hello'] self.assertEqual(lexeme.orth_, u'Hello') class TestTokenizer(unittest.TestCase): def test_create(self): vocab = Vocab() dummy_re = re.compile(r'sklfb;s') tokenizer = Tokenizer(vocab, {}, dummy_re, dummy_re, dummy_re) doc = tokenizer(u'I am a document.') self.assertEqual(len(doc), 4) class TestTagger(unittest.TestCase): def test_create(self): vocab = Vocab() templates = ((1,),) model = TaggerModel(vocab.morphology.n_tags, templates) tagger = Tagger(vocab, model) class TestParser(unittest.TestCase): def test_create(self): vocab = Vocab() templates = ((1,),) labels_by_action = {0: ['One', 'Two'], 1: ['Two', 'Three']} transition_system = ArcEager(vocab.strings, labels_by_action) model = ParserModel(transition_system.n_moves, templates) parser = Parser(vocab.strings, transition_system, model) class TestMatcher(unittest.TestCase): def test_create(self): vocab = Vocab() matcher = Matcher(vocab, {}) if __name__ == '__main__': unittest.main()