o
    g&                     @   sp  d dl Z d dlmZmZ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lmZ d dlZg dg d	gd
dgdZg dg d	gddgddddddigdZg dg d	gddgddgddddddddgdZdZde
dedeeeeef f d ed!ed"dfd#d$Ze d%d& Ze d'd( Ze d)d* Zejje d+d, Ze d-d. ZdS )/    N)DictAnyCallable)SystemSettings)
LogService)skip_if_not_cluster)records)
Collection)g?gffffff@皙	@)g333333?gQ@r   zhttps://example.com/1zhttps://example.com/2)
embeddingsidsid1id2   onegjt?)	int_valuestring_valuefloat_valuer      )r   r   	metadataszthis is doc1 and it's great!zdoc2 is also great!gjt @two)r   r   r   )r   	documentsr   r      
logservice
collectiontest_records_map	test_func	operationreturnc                 C   s  d}|  D ]}|di | | |j|d}t|t|d ks#J t|D ]\}}	|	jj|d | ks7J |	jj|ks?J td|d |  }
|	jj	j	|
ksTJ d}d|v r|t|d | 7 }|d | 
 D ];\}}t|tr|	jjj| j|ksJ qlt|tr|	jjj| j|ksJ qlt|tr|	jjj| j|ksJ qlJ d	|v r|d7 }|	jjjd
 j|d	 | ksJ t|	jjj|ksJ q'|t|7 }qd S )Nr   d   r   fr   r   r   Fr   zchroma:document )values	pull_logsidlen	enumeraterecordr   arraytobytesvectoritems
isinstanceintmetadatar   floatr   strr   )r   r   r   r   r   start_offsetbatch_recordspushed_recordsir(   	embeddingmetadata_countkeyvaluer"   r"   T/var/www/visachat/venv/lib/python3.10/site-packages/chromadb/test/test_logservice.pyverify_records'   s:   



r;   c                 C   ^   t tdd}|t}|  |   tt t	t
td}| d}t||||jd d S )NTallow_resetr3   metadata_recordscontains_recordstestaddr   )r   r   instancer   startresettimesleepMEMBERLIST_DELAY_SLEEP_TIMEr3   r@   rA   create_collectionr;   addclientsystemr   r   r   r"   r"   r:   test_addP   s   


rN   c                 C   sx   t tdd}|t}|  |   tt dt	d d gg dgddigd	i}| 
d
}t||||jd d S )NTr=   updated_recordsr   r   )g?g?g333333?foobar)r   r   r   
testupdater   )r   r   rC   r   rD   rE   rF   rG   rH   r	   rI   r;   updaterK   r"   r"   r:   test_updatec   s   


rT   c                 C   sp   t tdd}|t}|  |   tt | 	d}|j
di t ||jdd}t|dks6J d S )NTr=   
testdeleter   r    r   r"   )r   r   rC   r   rD   rE   rF   rG   rH   rI   rJ   rA   r$   r%   r&   )rL   rM   r   r   r4   r"   r"   r:   test_deletew   s   


rV   c                 C   s   t tdd}|t}|  |   tt | 	d}|j
ddid |j
ddid |j
ddid ||jd	d
}t|dksFJ |j
ddgd ||jd	d
}t|dks^J |D ]}|jjd	ksjJ |jjdv srJ q`d S )NTr=   testdelete_filterz	$containsdoc1)where_documentbadgreat   r    r   r   r   )r   r   )r   r   )r   r   rC   r   rD   rE   rF   rG   rH   rI   deleter$   r%   r&   r(   r   )rL   rM   r   r   r4   r(   r"   r"   r:   test_delete_filter   s$   


r^   c                 C   r<   )NTr=   r?   
testupsertr   )r   r   rC   r   rD   rE   rF   rG   rH   r3   r@   rA   rI   r;   upsertrK   r"   r"   r:   test_upsert   s   


ra   ) r)   typingr   r   r   pytestchromadb.configr   r   chromadb.logservice.logservicer   chromadb.test.conftestr   chromadb.test.test_apir	   chromadb.api.models.Collectionr
   rF   r3   r@   rA   rH   r1   r.   r;   rN   rT   rV   markxfailr^   ra   r"   r"   r"   r:   <module>   sd    




)


