Modernise vocab API tests and remove old xfailing tests

This commit is contained in:
Ines Montani 2017-01-12 15:27:46 +01:00
parent 7ea87684cd
commit 92e3d8b3ee

View File

@ -1,90 +1,39 @@
# coding: utf-8
from __future__ import unicode_literals
from ...attrs import LEMMA, ORTH, PROB, IS_ALPHA
from ...parts_of_speech import NOUN, VERB
import pytest
import io
import cloudpickle
import pickle
from spacy.attrs import LEMMA, ORTH, PROB, IS_ALPHA
from spacy.parts_of_speech import NOUN, VERB
from spacy.attrs import LEMMA, ORTH, PROB, IS_ALPHA
from spacy.parts_of_speech import NOUN, VERB
def test_neq(en_vocab):
addr = en_vocab['Hello']
assert en_vocab['bye'].orth != addr.orth
@pytest.mark.parametrize('text1,text2', [
("Hello", "bye"), ("Hello", "hello"), ("Hello", "Hello,")])
def test_vocab_api_neq(en_vocab, text1, text2):
assert en_vocab[text1].orth != en_vocab[text2].orth
def test_eq(en_vocab):
addr = en_vocab['Hello']
assert en_vocab['Hello'].orth == addr.orth
@pytest.mark.parametrize('text', "Hello")
def test_vocab_api_eq(en_vocab, text):
lex = en_vocab[text]
assert en_vocab[text].orth == lex.orth
def test_case_neq(en_vocab):
addr = en_vocab['Hello']
assert en_vocab['hello'].orth != addr.orth
@pytest.mark.parametrize('text', ["example"])
def test_vocab_api_shape_attr(en_vocab, text):
lex = en_vocab[text]
assert lex.orth != lex.shape
def test_punct_neq(en_vocab):
addr = en_vocab['Hello']
assert en_vocab['Hello,'].orth != addr.orth
@pytest.mark.parametrize('string,symbol', [
('IS_ALPHA', IS_ALPHA), ('NOUN', NOUN), ('VERB', VERB), ('LEMMA', LEMMA),
('ORTH', ORTH), ('PROB', PROB)])
def test_vocab_api_symbols(en_vocab, string, symbol):
assert en_vocab.strings[string] == symbol
def test_shape_attr(en_vocab):
example = en_vocab['example']
assert example.orth != example.shape
def test_symbols(en_vocab):
assert en_vocab.strings['IS_ALPHA'] == IS_ALPHA
assert en_vocab.strings['NOUN'] == NOUN
assert en_vocab.strings['VERB'] == VERB
assert en_vocab.strings['LEMMA'] == LEMMA
assert en_vocab.strings['ORTH'] == ORTH
assert en_vocab.strings['PROB'] == PROB
def test_contains(en_vocab):
assert 'Hello' in en_vocab
assert 'LKsdjvlsakdvlaksdvlkasjdvljasdlkfvm' not in en_vocab
@pytest.mark.xfail
def test_pickle_vocab(en_vocab):
file_ = io.BytesIO()
cloudpickle.dump(en_vocab, file_)
file_.seek(0)
loaded = pickle.load(file_)
@pytest.mark.xfail
def test_pickle_vocab_vectors(en_vocab):
vectors_length = en_vocab.vectors_length
assert vectors_length != 0
apples = en_vocab['apples']
oranges = en_vocab['oranges']
hippos = en_vocab['hippos']
assert apples.similarity(oranges) > apples.similarity(hippos)
apples.vector = hippos.vector
assert apples.similarity(oranges) < apples.similarity(hippos)
file_ = io.BytesIO()
cloudpickle.dump(en_vocab, file_)
file_.seek(0)
loaded = pickle.load(file_)
apples = loaded['apples']
oranges = loaded['oranges']
hippos = loaded['hippos']
assert apples.similarity(oranges) < apples.similarity(hippos)
@pytest.mark.parametrize('text', "Hello")
def test_contains(en_vocab, text):
_ = en_vocab[text]
assert text in en_vocab
assert "LKsdjvlsakdvlaksdvlkasjdvljasdlkfvm" not in en_vocab