B
    .(b8                 @   s   d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	 ddl
mZ dd	 Zd
d Zdd Zejjdddd Zejjdddd Zejjdddd Zejjdddd ZdS )    )unicode_literalsN)LookupsTable)get_string_id)Vocab   )make_tempdirc           	   C   sR  d} ddd}t  }|| | t|dks0t| |ks<t|| sJt|| }|j| ksbtt|dksrt|d dkstd|d	< |d	 dkst|| }t|d
ksttt	 |d W d Q R X tt
 ||  W d Q R X || }|j| kstt|dks t| |ks.ttt	 ||  W d Q R X d S )Ntestbarworld)foohello   r   r   ba   Zxyzr   )r   	add_tablelenAssertionErrorZ	has_table	get_tablenamepytestZraisesKeyError
ValueErrorZremove_table)
table_namedatalookupstable r   U/home/dcms/DCMS/lib/python3.7/site-packages/spacy/tests/vocab_vectors/test_lookups.pytest_lookups_api   s2    



r    c              C   s&  t dd} | jdkstt| dks(td| ks4tddd}t d|d} t| t|ks^td	| ksjttd	| kszt| d	 dkst| td	 dkst| d	dkst| dd kstd
| d< | d d
kst| td d
kst| dd | d dkst| td dks"td S )Nr   )r   r   abcr
   r   )r   r   )r   r   r   {   defi  )r   r   r   r   r   getset)r   r   r   r   r   test_table_api(   s&    

r&   c              C   s   dddd} t d| d}| }t  |}|jdks:tt|dksJt|d dksZt|td dksntt d	d
id}|| t|dkstd	|kstd S )Nr
   r   r"   )r   r   r!   r   )r   r   r   r   r#   i  )r   )r   to_bytes
from_bytesr   r   r   r   )r   r   Ztable_bytesZ	new_tableZ
new_table2r   r   r   test_table_api_to_from_bytes>   s    
r)   zThis fails on Python 3.5)reasonc              C   s   t  } | dddd | ddddd	 |  }t  }|| t|dksTtd|ks`td|kslt|d}t|dkst|d
 dkst|d}t|dkst|d dkst| |kstd S )Ntable1r
   r   )r   r   table2r   r   r   )r   r   cr   r   )r   r   r'   r(   r   r   r   )r   Zlookups_bytesnew_lookupsr+   r,   r   r   r   test_lookups_to_from_bytesM   s     


r/   c           	   C   s   t  } | dddd | ddddd	 t  }| | t  }|| W d Q R X t|dkshtd|ksttd|kst|d}t|dkst|d
 dkst|d}t|dkst|d dkstd S )Nr+   r
   r   )r   r   r,   r   r   r   )r   r   r-   r   r   )r   r   r   to_disk	from_diskr   r   r   )r   tmpdirr.   r+   r,   r   r   r   test_lookups_to_from_diska   s     


r3   c              C   s   d} t  }|j| ddd | |jks,t| }t  }|| t|jt|jks\t| |jksjt|j| }t|dkst|d dkst| |kstd S )Nr	   r
   r   )r   r   r   r   )r   r   r   r   r'   r(   r   r   )r   vocabZvocab_bytes	new_vocabr   r   r   r   $test_lookups_to_from_bytes_via_vocabu   s    
r6   c           	   C   s   d} t  }|j| ddd | |jks,tt  }|| t  }|| W d Q R X t|jt|jkspt| |jks~t|j| }t|dkst|d dkstd S )Nr	   r
   r   )r   r   r   r   )	r   r   r   r   r   r0   r1   r   r   )r   r4   r2   r5   r   r   r   r   #test_lookups_to_from_disk_via_vocab   s    
r7   )
__future__r   r   Zspacy.lookupsr   r   Zspacy.stringsr   Zspacy.vocabr   utilr   r    r&   r)   markskipr/   r3   r6   r7   r   r   r   r   <module>   s   