o
    i,                     @   sx   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dd Zdd Zdd Zdd ZdS )    N)LookupsTable)get_string_id)Vocab   )make_tempdirc                  C   s  d} ddd}t  }|| | t|dksJ | |v sJ || s%J || }|j| ks1J t|dks9J |d dksAJ d|d	< |d	 dksMJ || }t|d
ksZJ tt |d W d    n1 sow   Y  tt	 ||  W d    n1 sw   Y  |
| }|j| ksJ t|dksJ | |vsJ tt ||  W d    d S 1 sw   Y  d S )Ntestbarworldfoohello   r   r   ba   xyzr   )r   	add_tablelen	has_table	get_tablenamepytestraisesKeyError
ValueErrorremove_table)
table_namedatalookupstable r!   Z/home/ubuntu/.local/lib/python3.10/site-packages/spacy/tests/vocab_vectors/test_lookups.pytest_lookups_api
   s8   



"r#   c                  C   s"  t dd} | jdksJ t| dksJ d| vsJ ddd}t d|d} t| t|ks/J d	| v s5J td	| v s=J | d	 dksEJ | td	 dksOJ | d	dksXJ | dd u saJ d
| d< | d d
ksmJ | td d
kswJ | dd | d dksJ | td dksJ d S )Nr    )r   r   abcr	   r
   r   r   r   r   {   def  )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J t|dks%J |d dks-J |td dks7J t d	d
id}|| t|dksKJ d	|vsQJ d S )Nr	   r
   r&   )r   r   r$   r    r%   r   r   r'   r(   )r   )r   to_bytes
from_bytesr   r   r   )r   r    table_bytes	new_table
new_table2r!   r!   r"   test_table_api_to_from_bytes<   s   
r1   c                  C   s   t  } | dddd | ddddd	 |  }t  }|| t|dks*J d|v s0J d|v s6J |d}t|dksCJ |d
 dksKJ |d}t|dksXJ |d dks`J | |kshJ d S Ntable1r	   r
   r   table2r   r   r   )r   r   cr   r   )r   r   r,   r-   r   r   )r   lookups_bytesnew_lookupsr3   r4   r!   r!   r"   test_lookups_to_from_bytesK   s    


r8   c                  C   s   t  } | dddd | ddddd	 t }| | t  }|| W d    n1 s1w   Y  t|dks>J d|v sDJ d|v sJJ |d}t|dksWJ |d
 dks_J |d}t|dkslJ |d dkstJ d S r2   )r   r   r   to_disk	from_diskr   r   )r   tmpdirr7   r3   r4   r!   r!   r"   test_lookups_to_from_disk^   s"   


r<   c                  C   s   d} t  }|j| ddd | |jv sJ | }t  }|| t|jt|jks.J | |jv s5J |j| }t|dksCJ |d dksKJ | |ksSJ d S Nr   r	   r
   r   r   r   )r   r   r   r,   r-   r   r   )r   vocabvocab_bytes	new_vocabr    r!   r!   r"   $test_lookups_to_from_bytes_via_vocabq   s   
rA   c                  C   s   d} t  }|j| ddd | |jv sJ t }|| t  }|| W d    n1 s1w   Y  t|jt|jksBJ | |jv sIJ |j| }t|dksWJ |d dks_J d S r=   )r   r   r   r   r9   r:   r   r   )r   r>   r;   r@   r    r!   r!   r"   #test_lookups_to_from_disk_via_vocab   s   
rB   )r   spacy.lookupsr   r   spacy.stringsr   spacy.vocabr   utilr   r#   r+   r1   r8   r<   rA   rB   r!   r!   r!   r"   <module>   s    