Ë
    lQêj¤  ã                   ó�  — 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	jB                   ejD                  d¬«      d	¬
«      Z# G d„ de«      Z$ e«       dejJ                  de jL                  jN                  ddfd„«       Z(y)é    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j4                  e«      e¬«      deeej                  f   dej6                  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                 óN   •— t         ‰| �  «        || _        t        «       | _        y ©N)ÚsuperÚ__init__r   Úsetr   )Úselfr   Ú	__class__s     €úe/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/test/property/test_fork.pyr"   zForkStateMachine.__init__'   s   ø€ Ü‰ÑÔØˆŒÜ #£ˆÕó    )Ú
collectionÚtargetr(   Úreturnc                 óú   — | j                   j                  |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,   ss   € ð —‘×.Ñ.Ø—‘Ø×(Ñ(Ø)×<Ñ<ð /ó 
ˆð
 	×Ñ×!Ñ! &§+¡+Ô.Ø”z×7Ñ7Ø˜b¨B¸2ô
ð 
ð 	
r'   Nc                 ó.   — t        | j                  «       y r    )r   r   )r$   s    r&   ÚteardownzForkStateMachine.teardown:   s   € äˆd�k‰kÕr'   )r   Únew_namer)   r   r9   c                 ó~  — |\  }}|| j                   v r>t        j                  t        «      5  |j	                  |«       d d d «       t        |«      S |j	                  |«      }| j                   j                  |j                  «       t        ||t        j                  |«      f«      S # 1 sw Y   t        |«      S xY w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Ð CÓDÐD÷*ä˜FÓ#Ð#ús   ­B)Â)B<)ÚcursorÚdeltar)   rB   rC   c           	      ó  — |\  }}t        j                  |«      } |j                  di |¤Ž t        |d   «      D �]É  \  }}||d   v rÝ|d   j	                  |«      }|d   �|d   |   |d   |<   n6|d   €J ‚|j
                  €J ‚|j                  |d   |   g«      d   |d   |<   |d   �et        t        t        t        t        t        t        f   f   |d   |   «      }	|	� |d   |   �&|	j                  |d   |   «       n|d   |   |d   |<   |d   €ŒÜ|d   |   |d   |<   Œë|d   j                  |«       |d   �|d   j                  |d   |   «       nB|j
                  €J ‚|d   €J ‚|d   j                  |j                  |d   |   g«      d   «       |d   �|d   j                  |d   |   «       n|d   j                  d «       |d   �|d   j                  |d   |   «       �Œ¶|d   j                  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   sø  € ð (.Ñ$ˆ
Ð$Ü;E×;NÑ;NÈuÓ;UÐØˆ
×ÑÑ-Ð,Ò-Ü Ð!1°%Ñ!8Ó9ó <	?‰GˆC�ØÐ% eÑ,Ñ,Ø-¨eÑ4×:Ñ:¸2Ó>�
Ø# LÑ1Ð=ØAQØ$ñBàñBÐ$ \Ñ2°:Ò>ð ,¨KÑ8ÐDÐDÐDØ%×9Ñ9ÐEÐEÐEð #×6Ñ6Ø)¨+Ñ6°sÑ;Ð<óð ñð % \Ñ2Ø"ñð $ KÑ0Ð<Ü04ÜœS¤%¬¬S´%¨Ñ"8Ð8Ñ9Ø(¨Ñ5°jÑAó1Ð-ð 1Ð<Ø+¨KÑ8¸Ñ=ÐIØ5×<Ñ<Ø 0°Ñ =¸cÑ Bõð EUØ'ñEàñEÐ(¨Ñ5°jÑAð $ KÑ0Ñ<Ø@PØ#ñAàñAÐ$ [Ñ1°*Ò=ð ! Ñ'×.Ñ.¨rÔ2Ø# LÑ1Ð=Ø$ \Ñ2×9Ñ9Ø(¨Ñ6°sÑ;õð &×9Ñ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¸Ö>ðy<	?ðz Ð+Ð+Ð+r'   )rB   r)   c                 óÒ   — |\  }}t        |d   «      dz  }|dk(  r||fS |d   d | }|j                  |«       |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Ð(PÐ˜Ñ%Ø(8¸Ñ(EÀhÀiÐ(PÐ˜Ñ%ØÐ+Ð+Ð+r'   )rB   c                 ó  — |\  }}t        |d   «      dk(  r|j                  «       dk(  sJ ‚y t        t        j                  |«      }t        j                  ||«       t        j                  ||«       t        j                  ||«       y )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Ñ2Ð4DÓ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Ñ5õ &ñ
 ˜=Ð1DÔEð
Ø$×/Ñ/ð
à	ˆz˜:×;Ñ;Ð;Ñ	<ò
ó Fð
ð òó ðñ 
ÙÐ+Ó,Ø+�×+Ñ+Ó-Ø!ôð
EØ˜J¨
×(HÑ(HÐHÑIðEØUXðEà	˜˜z¨:×+KÑ+KÐKÑLÑ	MòEóð
Eñ 
ÙÐ*Ó+Ø#ˆj×#Ñ# MÓ2Ø"ôð
E,à�j *×"BÑ"BÐBÑCðE,ð ×#Ñ#ðE,ð 
ˆz˜:×;Ñ;Ð;Ñ	<ò	E,óð
E,ñN 
ÙÐ*Ó+Ø"ôð,Ø˜J¨
×(HÑ(HÐHÑIð,à	ˆz˜:×;Ñ;Ð;Ñ	<ò,ó	ð,ñ 
Ø!ôð
?Ø˜J¨
×(HÑ(HÐHÑIð
?à	ò
?óô
?r'   r   Úcaplogr   r*   c                 ó`   ‡— | j                  t        j                  «       t        ˆfd„«       y )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   ¿   s   ø€ à
×Ñ”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Û Ý $Û Û å 5÷÷	÷ 	ó 	õ  ß 0Õ 0à�—‘Ð2˜J×2Ñ2ÀDÔIÈxÔX€ô^?Ð,ô ^?ñB Óð@�f×.Ñ.ð @¸¿¹×8NÑ8Nð @ÐSWò @ó ñ@r'   