§
    ˜Štj¤  ã                   ó~  — d dl Z d dlmc mc mZ d dlmc mc mZ d dlZd dlmZ	 d dl
Z
d dlZd dlmZ d dlmZmZ d dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZmZm Z   e	j!         ej"        d¬¦  «        d	¬
¦  «        Z# G d„ de¦  «        Z$ e¦   «         dej%        de j&        j'        ddfd„¦   «         Z(dS )é    N)Ú
Collection)ÚresetÚskip_if_not_cluster)ÚBundleÚRuleBasedStateMachineÚruleÚ
initializeÚmultipleÚconsumesÚrun_state_machine_as_testÚMultipleResults)Ú	overrides)ÚDictÚcastÚUnionÚTupleÚSetT)Úwith_hnsw_paramsÚsource)Úkeyc            
       óh  ‡ — e Zd ZU  ed¦  «        Zeeeej        f                  e	d<    ed¦  «        Z
eeeej        f                  e	d<   ee         e	d<   dej        j        fˆ fd„Z eee¬¦  «        d	ej        d
eeej        f         fd„¦   «         Zedd„¦   «         Z e ee¦  «         ej        ¦   «         e
¬¦  «        deeej        f         ded
eeeej        f                  fd„¦   «         Z e ee
¦  «         ej        e¦  «        e¬¦  «        deeej        f         dej        d
eeej        f         fd„¦   «         Z e ee
¦  «        e¬¦  «        deeej        f         d
eeej        f         fd„¦   «         Z ee
¬¦  «        deeej        f         d
dfd„¦   «         Zˆ xZS )ÚForkStateMachineÚchanging_collectionsÚupdated_collectionsÚcollectionsÚforked_collectionsÚcollection_namesÚclientc                 ó|   •— t          ¦   «                              ¦   «          || _        t          ¦   «         | _        d S ©N)ÚsuperÚ__init__r   Úsetr   )Úselfr   Ú	__class__s     €ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/test/property/test_fork.pyr"   zForkStateMachine.__init__'   s2   ø€ Ý‰Œ×ÒÑÔÐØˆŒÝ #¡¤ˆÔÐÐó    )Ú
collectionÚtargetr(   Úreturnc                 óÌ   — | j                              |j        |j        |j        ¬¦  «        }| j                             |j        ¦  «         |t          j        g g g g ¬¦  «        fS )N)ÚnameÚmetadataÚembedding_function)ÚidsÚ	metadatasÚ	documentsÚ
embeddings)	r   Úcreate_collectionr,   r-   r.   r   ÚaddÚ
strategiesÚStateMachineRecordSet)r$   r(   r   s      r&   r	   zForkStateMachine.initialize,   sv   € ð ”×.Ò.Ø”ØÔ(Ø)Ô<ð /ñ 
ô 
ˆð
 	Ô×!Ò! &¤+Ñ.Ô.Ð.Ø•zÔ7Ø˜b¨B¸2ð
ñ 
ô 
ð 
ð 	
r'   Nc                 ó.   — t          | j        ¦  «         d S r    )r   r   )r$   s    r&   ÚteardownzForkStateMachine.teardown:   s   € åˆdŒkÑÔÐÐÐr'   )r   Únew_namer)   r   r9   c                 óx  — |\  }}|| j         v rUt          j        t          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |¦  «        S |                     |¦  «        }| j                              |j        ¦  «         t          ||t          j	        |¦  «        f¦  «        S r    )
r   ÚpytestÚraisesÚ	ExceptionÚforkr
   r4   r,   ÚcopyÚdeepcopy)r$   r   r9   r(   Ú
record_setr)   s         r&   r>   zForkStateMachine.fork>   sê   € ð "(Ñˆ
�JØ�tÔ,Ð,Ð,Ý”�yÑ)Ô)ð *ð *Ø—’ Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *å˜FÑ#Ô#Ð#à—’ Ñ*Ô*ˆØÔ×!Ò! &¤+Ñ.Ô.Ð.Ý˜ ­¬°zÑ)BÔ)BÐ CÑDÔDÐDs   ¨A
Á
AÁA)ÚcursorÚdeltar)   rB   rC   c           	      óŠ  — |\  }}t          j        |¦  «        } |j        di |¤Ž t          |d         ¦  «        D �]ƒ\  }}||d         v �r<|d                              |¦  «        }|d         �|d         |         |d         |<   nD|d         €J ‚|j        €J ‚|                     |d         |         g¦  «        d         |d         |<   |d         �”t          t          t          t          t          t          t          f         f         |d         |         ¦  «        }	|	�0|d         |         �!|	                     |d         |         ¦  «         n|d         |         |d         |<   |d         �|d         |         |d         |<   �ŒM|d                              |¦  «         |d         �(|d                              |d         |         ¦  «         nT|j        €J ‚|d         €J ‚|d                              |                     |d         |         g¦  «        d         ¦  «         |d         �(|d                              |d         |         ¦  «         n|d                              d ¦  «         |d         �)|d                              |d         |         ¦  «         �Œh|d                              d ¦  «         �Œ…||fS )Nr/   r2   r1   r   r0   © )Ú
invariantsÚwrap_allÚupsertÚ	enumerateÚindexÚ_embedding_functionr   r   Ústrr   ÚintÚfloatÚupdateÚappend)
r$   rB   rC   r(   Úrecord_set_stateÚnormalized_deltaÚidxÚidÚ
target_idxÚrecord_set_state_metadatas
             r&   rH   zForkStateMachine.upsertP   sg  € ð (.Ñ$ˆ
Ð$Ý;EÔ;NÈuÑ;UÔ;UÐØˆ
ÔÐ-Ð-Ð,Ð-Ð-Ð-Ý Ð!1°%Ô!8Ñ9Ô9ð <	?ñ <	?‰GˆC�ØÐ% eÔ,Ð,Ñ,Ø-¨eÔ4×:Ò:¸2Ñ>Ô>�
Ø# LÔ1Ð=ØAQØ$ôBàôBÐ$ \Ô2°:Ñ>Ð>ð ,¨KÔ8ÐDÐDÐDØ%Ô9ÐEÐEÐEð #×6Ò6Ø)¨+Ô6°sÔ;Ð<ñô ð ôð % \Ô2Ø"ñð $ KÔ0Ð<Ý04Ý�S¥%­­Sµ%¨Ô"8Ð8Ô9Ø(¨Ô5°jÔAñ1ô 1Ð-ð 1Ð<Ø+¨KÔ8¸Ô=ÐIØ5×<Ò<Ø 0°Ô =¸cÔ Bñô ð øð EUØ'ôEàôEÐ(¨Ô5°jÑAð $ KÔ0Ð<Ø@PØ#ôAàôAÐ$ [Ô1°*Ñ=ùð ! Ô'×.Ò.¨rÑ2Ô2Ð2Ø# LÔ1Ð=Ø$ \Ô2×9Ò9Ø(¨Ô6°sÔ;ñô ð ð ð &Ô9ÐEÐEÐEØ+¨KÔ8ÐDÐDÐDØ$ \Ô2×9Ò9Ø"×6Ò6Ø-¨kÔ:¸3Ô?Ð@ñô àôñô ð ð
 $ KÔ0Ð<Ø$ [Ô1×8Ò8Ø(¨Ô5°cÔ:ñô ð ð ð % [Ô1×8Ò8¸Ñ>Ô>Ð>Ø# KÔ0Ð<Ø$ [Ô1×8Ò8Ø(¨Ô5°cÔ:ñô ð ñ ð % [Ô1×8Ò8¸Ñ>Ô>Ð>Ñ>ØÐ+Ð+Ð+r'   )rB   r)   c                 ó:  — |\  }}t          |d         ¦  «        dz  }|dk    r||fS |d         d |…         }|                     |¦  «         |d         |d …         |d<   |d         |d …         |d<   |d         |d …         |d<   |d         |d …         |d<   ||fS )Nr/   é
   r   r2   r0   r1   )ÚlenÚdelete)r$   rB   r(   rQ   ÚboundaryÚids_to_deletes         r&   rZ   zForkStateMachine.deleteœ   sÓ   € ð (.Ñ$ˆ
Ð$ÝÐ'¨Ô.Ñ/Ô/°2Ñ5ˆØ�qŠ=ˆ=ØÐ/Ð/Ð/Ø(¨Ô/°	°°	Ô:ˆØ×Ò˜-Ñ(Ô(Ð(Ø"2°5Ô"9¸(¸)¸)Ô"DÐ˜ÑØ)9¸,Ô)GÈÈ	È	Ô)RÐ˜Ñ&Ø(8¸Ô(EÀhÀiÀiÔ(PÐ˜Ñ%Ø(8¸Ô(EÀhÀiÀiÔ(PÐ˜Ñ%ØÐ+Ð+Ð+r'   )rB   c                 ó,  — |\  }}t          |d         ¦  «        dk    r|                     ¦   «         dk    sJ ‚d S t          t          j        |¦  «        }t          j        ||¦  «         t          j        ||¦  «         t          j        ||¦  «         d S )Nr/   r   )	rY   Úcountr   r5   Ú	RecordSetrF   Úembeddings_matchÚmetadatas_matchÚdocuments_match)r$   rB   r(   rQ   rA   s        r&   ÚverifyzForkStateMachine.verify¯   s�   € ð (.Ñ$ˆ
Ð$ÝÐ Ô&Ñ'Ô'¨1Ò,Ð,Ø×#Ò#Ñ%Ô%¨Ò*Ð*Ð*Ð*Ð*Ð*å�jÔ2Ð4DÑEÔEˆJÝÔ'¨
°JÑ?Ô?Ð?ÝÔ& z°:Ñ>Ô>Ð>ÝÔ& z°:Ñ>Ô>Ð>Ð>Ð>r'   )r*   N) Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r5   r6   Ú__annotations__r   r   rL   ÚchromadbÚapiÚ	ClientAPIr"   r	   Úcollection_str   r8   r   r   Úcollection_namer   r>   Ú
recordsetsr_   rH   rZ   rc   Ú__classcell__)r%   s   @r&   r   r      s.  ø€ € € € € € ð 	ˆÐ%Ñ&Ô&ð ˜Øˆj˜*Ô:Ð:Ô;ôð 'ð 'ñ 'ð
 	ˆˆ}ÑÔð ˜Øˆj˜*Ô:Ð:Ô;ôð ð ñ ð ˜#”hÐÐÑð&˜xœ|Ô5ð &ð &ð &ð &ð &ð &ð
 €Z˜=Ð1DÐEÑEÔEð
Ø$Ô/ð
à	ˆz˜:Ô;Ð;Ô	<ð
ð 
ð 
ñ FÔEð
ð ðð ð ñ „Yðð 
€TØˆxÐ+Ñ,Ô,Ø+�Ô+Ñ-Ô-Ø!ðñ ô ð
EØ˜J¨
Ô(HÐHÔIðEØUXðEà	˜˜z¨:Ô+KÐKÔLÔ	MðEð Eð Eñô ð
Eð 
€TØˆxÐ*Ñ+Ô+Ø#ˆjÔ# MÑ2Ô2Ø"ðñ ô ð
E,à�j *Ô"BÐBÔCðE,ð Ô#ðE,ð 
ˆz˜:Ô;Ð;Ô	<ð	E,ð E,ð E,ñô ð
E,ðN 
€TØˆxÐ*Ñ+Ô+Ø"ðñ ô ð,Ø˜J¨
Ô(HÐHÔIð,à	ˆz˜:Ô;Ð;Ô	<ð,ð ,ð ,ñ	ô ð,ð 
€TØ!ðñ ô ð
?Ø˜J¨
Ô(HÐHÔIð
?à	ð
?ð 
?ð 
?ñô ð
?ð 
?ð 
?ð 
?ð 
?r'   r   Úcaplogr   r*   c                 ój   ‡— |                       t          j        ¦  «         t          ˆfd„¦  «         d S )Nc                  ó"   •— t          ‰ ¦  «        S r    )r   )r   s   €r&   ú<lambda>ztest_fork.<locals>.<lambda>Â   s   ø€ Õ&6°vÑ&>Ô&>€ r'   )Ú	set_levelÚloggingÚERRORr   )ro   r   s    `r&   Ú	test_forkrv   ¿   s7   ø€ à
×Ò•W”]Ñ#Ô#Ð#ÝÐ>Ð>Ð>Ð>Ñ?Ô?Ð?Ð?Ð?r'   ))rh   Ú!chromadb.test.property.invariantsÚtestÚpropertyrF   Ú!chromadb.test.property.strategiesr5   r?   Úhypothesis.strategiesÚhystrt   r;   Úchromadb.api.models.Collectionr   Úchromadb.test.conftestr   r   Úhypothesis.statefulr   r   r   r	   r
   r   r   r   r   Útypingr   r   r   r   r   Úsharedr   rk   r   ÚLogCaptureFixtureri   rj   rv   rE   r'   r&   ú<module>rƒ      s  ðØ €€€Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø €€€Ø €€€à 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð  Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à�”Ð2˜JÔ2ÀDÐIÑIÔIÈxÐXÑXÔX€ð^?ð ^?ð ^?ð ^?ð ^?Ð,ñ ^?ô ^?ð ^?ðB ÐÑÔð@�fÔ.ð @¸¼Ô8Nð @ÐSWð @ð @ð @ñ Ôð@ð @ð @r'   