§
    ˜Štj*E  ã                   ó  — d Z ddlZddlZddlmZ ddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZmZ dd	lmZmZmZmZ  e¦   «         gZd
eddfd„Zd
eddfd„Zd
eddfd„Zd
eddfd„Zd
eddfd„Zd
eddfd„Zd
eddfd„Zd
eddfd„ZdS )z@
Integration test for the Collection statistics wrapper methods
é    N)ÚAny)ÚClient)ÚSparseVector)ÚSystem)Úskip_if_not_cluster)Úget_collection_versionÚwait_for_version_increase)Úattach_statistics_functionÚdetach_statistics_functionÚget_statisticsÚget_statistics_fn_nameÚbasic_http_clientÚreturnc           
      óì  — t          j        | ¦  «        }|                     ¦   «          |                     dddi¬¦  «        }t	          |d¦  «        \  }}|€J ‚|du sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚t          ||j        ¦  «        }| 	                    g d	¢g d
¢ddddœddddœddddœg¬¦  «         t          ||j        |¦  «         t          j        d¦  «         t          |d¦  «        }t          d¦  «         t          t          j        |d¬¦  «        ¦  «         d|v sJ ‚d|v sJ ‚|d         d         dk    sJ ‚d|d         v sJ ‚d|d         d         v sJ ‚d|d         d         v sJ ‚|d         d         d         d         dk    sJ ‚|d         d         d         d         dk    sJ ‚d|d         v sJ ‚d|d         d         v sJ ‚d|d         d         v sJ ‚|d         d         d         d         dk    sJ ‚|d         d         d         d         dk    sJ ‚d|d         v sJ ‚d |d         d         v sJ ‚d!|d         d         v sJ ‚|d         d         d          d         dk    sJ ‚|d         d         d!         d         dk    sJ ‚|                     t%          |¦  «        ¦  «        }|j        dk    sJ ‚t'          |d¬"¦  «        }|du sJ ‚|                     d¦  «        }	|	€J ‚dS )#z1Test the statistics wrapper methods on CollectionÚtest_collectionÚdescriptionzTest collection for statistics)ÚnameÚmetadataÚtest_collection_statisticsNTÚ
statistics©Údoc1Údoc2Údoc3©ztest document 1ztest document 2ztest document 3ÚAé
   ©ÚcategoryÚscoreÚactiveÚBFé   ©ÚidsÚ	documentsÚ	metadatasé<   z
Statistics output:é   ©ÚindentÚsummaryÚtotal_counté   r   Úcounté   r    Ú10Ú20r!   ÚtrueÚfalse©Údelete_stats_collection)ÚClientCreatorÚfrom_systemÚresetÚget_or_create_collectionr
   Úfunction_nameÚoutput_collectionr   r   Úaddr	   ÚtimeÚsleepr   ÚprintÚjsonÚdumpsÚget_attached_functionr   r   Úget_collection)
r   ÚclientÚ
collectionÚattached_fnÚcreatedÚinitial_versionÚstatsÚstats_fnÚsuccessÚstats_collections
             úo/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/test/distributed/test_statistics_wrapper.pyÚtest_statistics_wrapperrO      sú  € åÔ&Ð'8Ñ9Ô9€FØ
‡L‚L�N„N€Nð ×0Ò0ØØÐ!AÐBð 1ñ ô €Jõ 6ØÐ0ñô Ñ€K�ð Ð"Ð"Ð"Ø�dˆ?ˆ?ˆ?ˆ?ØÔ$¨Ò4Ð4Ð4Ð4ØÔ(Ð,HÒHÐHÐHÐHå,¨V°Z´_ÑEÔE€Oð ‡N‚NØ$Ð$Ð$ØKÐKÐKà r°TÐ:Ð:Ø r°UÐ;Ð;Ø r°TÐ:Ð:ð
ð ñ ô ð õ ˜f j¤o°ÑGÔGÐGÝ„Jˆr�N„N€Nõ ˜:Ð'CÑDÔD€EÝ	Ð
 Ñ!Ô!Ð!Ý	�$Œ*�U 1Ð
%Ñ
%Ô
%Ñ&Ô&Ð&ð ˜5Ð Ð Ð Ð Ø˜ÐÐÐÐð �Ô˜MÔ*¨aÒ/Ð/Ð/Ð/ð ˜˜|Ô,Ð,Ð,Ð,Ð,Ø�%˜Ô% jÔ1Ð1Ð1Ð1Ð1Ø�%˜Ô% jÔ1Ð1Ð1Ð1Ð1Ø�Ô˜zÔ*¨3Ô/°Ô8¸AÒ=Ð=Ð=Ð=Ø�Ô˜zÔ*¨3Ô/°Ô8¸AÒ=Ð=Ð=Ð=ð �e˜LÔ)Ð)Ð)Ð)Ð)Ø�5˜Ô& wÔ/Ð/Ð/Ð/Ð/Ø�5˜Ô& wÔ/Ð/Ð/Ð/Ð/Ø�Ô˜wÔ'¨Ô-¨gÔ6¸!Ò;Ð;Ð;Ð;Ø�Ô˜wÔ'¨Ô-¨gÔ6¸!Ò;Ð;Ð;Ð;ð �u˜\Ô*Ð*Ð*Ð*Ð*Ø�U˜<Ô(¨Ô2Ð2Ð2Ð2Ð2Ø�e˜LÔ)¨(Ô3Ð3Ð3Ð3Ð3Ø�Ô˜xÔ(¨Ô0°Ô9¸QÒ>Ð>Ð>Ð>Ø�Ô˜xÔ(¨Ô1°'Ô:¸aÒ?Ð?Ð?Ð?ð ×/Ò/Õ0FÀzÑ0RÔ0RÑSÔS€HØÔ! \Ò1Ð1Ð1Ð1õ )¨ÈUÐSÑSÔS€GØ�dˆ?ˆ?ˆ?ˆ?ð ×,Ò,Ð-IÑJÔJÐØÐ'Ð'Ð'Ð'Ð'ó    c           
      ó   — t          j        | ¦  «        }|                     ¦   «          |                     d¬¦  «        }t	          ||j        ¦  «        }|                     g d¢g d¢ddddœd	dd
dœddddœg¬¦  «         t          ||j        |¦  «         t	          ||j        ¦  «        }t          |d¦  «        \  }}|du sJ ‚|j	        dk    sJ ‚|j
        dk    sJ ‚t          ||j        |¦  «         t          |d¦  «        }|€J ‚d|v sJ ‚d|v sJ ‚|d         d         dk    sJ ‚d|d         v sJ ‚d|d         d         v sJ ‚d	|d         d         v sJ ‚|d         d         d         d         dk    sJ ‚|d         d         d	         d         dk    sJ ‚d|d         v sJ ‚d|d         d         v sJ ‚d|d         d         v sJ ‚|d         d         d         d         dk    sJ ‚|d         d         d         d         dk    sJ ‚d|d         v sJ ‚d|d         d         v sJ ‚d|d         d         v sJ ‚|d         d         d         d         dk    sJ ‚|d         d         d         d         dk    sJ ‚t          |d¬¦  «        }|du sJ ‚dS )zTest backfill statisticsÚmy_collection©r   r   r   r   r   Tr   r"   Fr#   r$   Úmy_collection_statisticsr   Nr,   r-   r.   r   r/   r)   r0   r    r1   r2   r!   r3   r4   r5   )r7   r8   r9   Úcreate_collectionr   r   r=   r	   r
   r;   r<   r   r   )r   rE   rF   rI   rG   rH   rJ   rL   s           rN   Útest_backfill_statisticsrV   p   s{  € åÔ&Ð'8Ñ9Ô9€FØ
‡L‚L�N„N€Nà×)Ò)¨Ð)Ñ?Ô?€Jå,¨V°Z´_ÑEÔE€Oð ‡N‚NØ$Ð$Ð$ØKÐKÐKà r°TÐ:Ð:Ø r°UÐ;Ð;Ø r°TÐ:Ð:ð
ð ñ ô ð õ ˜f j¤o°ÑGÔGÐGÝ,¨V°Z´_ÑEÔE€Oõ 6ØÐ.ñô Ñ€K�ð �dˆ?ˆ?ˆ?ˆ?ØÔ$¨Ò4Ð4Ð4Ð4ØÔ(Ð,FÒFÐFÐFÐFõ ˜f j¤o°ÑGÔGÐGå˜:Ð'AÑBÔB€EØÐÐÐØ˜5Ð Ð Ð Ð Ø˜ÐÐÐÐð �Ô˜MÔ*¨aÒ/Ð/Ð/Ð/ð ˜˜|Ô,Ð,Ð,Ð,Ð,Ø�%˜Ô% jÔ1Ð1Ð1Ð1Ð1Ø�%˜Ô% jÔ1Ð1Ð1Ð1Ð1Ø�Ô˜zÔ*¨3Ô/°Ô8¸AÒ=Ð=Ð=Ð=Ø�Ô˜zÔ*¨3Ô/°Ô8¸AÒ=Ð=Ð=Ð=ð �e˜LÔ)Ð)Ð)Ð)Ð)Ø�5˜Ô& wÔ/Ð/Ð/Ð/Ð/Ø�5˜Ô& wÔ/Ð/Ð/Ð/Ð/Ø�Ô˜wÔ'¨Ô-¨gÔ6¸!Ò;Ð;Ð;Ð;Ø�Ô˜wÔ'¨Ô-¨gÔ6¸!Ò;Ð;Ð;Ð;ð �u˜\Ô*Ð*Ð*Ð*Ð*Ø�U˜<Ô(¨Ô2Ð2Ð2Ð2Ð2Ø�e˜LÔ)¨(Ô3Ð3Ð3Ð3Ð3Ø�Ô˜xÔ(¨Ô0°Ô9¸QÒ>Ð>Ð>Ð>Ø�Ô˜xÔ(¨Ô1°'Ô:¸aÒ?Ð?Ð?Ð?õ )¨ÈTÐRÑRÔR€GØ�dˆ?ˆ?ˆ?ˆ?ˆ?ˆ?rP   c                 óÆ  — t          j        | ¦  «        }|                     ¦   «          |                     d¬¦  «        }t	          |d¬¦  «        \  }}|du sJ ‚|j        dk    sJ ‚t          ||j        ¦  «        }|                     dgdgdd	ig¬
¦  «         t          ||j        |¦  «         t          |d¦  «        }d|v sJ ‚d|d         v sJ ‚t          |d¬¦  «         dS )z2Test statistics with custom output collection namerR   rS   Úmy_custom_stats)Ústats_collection_nameTÚid1r   ÚkeyÚvaluer$   r   r5   N)r7   r8   r9   rU   r
   r<   r   r   r=   r	   r   r   )r   rE   rF   rG   rH   rI   rJ   s          rN   Ú0test_statistics_wrapper_custom_output_collectionr]   µ   s(  € åÔ&Ð'8Ñ9Ô9€FØ
‡L‚L�N„N€Nà×)Ò)¨Ð)Ñ?Ô?€Jõ 6ØÐ*;ðñ ô Ñ€K�ð �dˆ?ˆ?ˆ?ˆ?ØÔ(Ð,=Ò=Ð=Ð=Ð=å,¨V°Z´_ÑEÔE€Oð ‡N‚NØˆGØ�(Ø˜7Ð#Ð$ð ñ ô ð õ ˜f j¤o°ÑGÔGÐGõ ˜:Ð'8Ñ9Ô9€EØ˜5Ð Ð Ð Ð Ø�E˜,Ô'Ð'Ð'Ð'Ð'õ ˜zÀ4ÐHÑHÔHÐHÐHÐHrP   c           
      óV  — t          j        | ¦  «        }|                     ¦   «          |                     d¬¦  «        }t	          |d¦  «        \  }}|du sJ ‚t          ||j        ¦  «        }|                     g d¢g d¢dddd	œd
ddd	œdddd	œg¬¦  «         t          ||j        |¦  «         t          j
        d¦  «         t          |d¦  «        }d|d         v sJ ‚d|d         v sJ ‚d|d         v sJ ‚t          |ddg¬¦  «        }d|d         v sJ ‚d|d         vsJ ‚d|d         vsJ ‚|d         d         d         d         dk    sJ ‚|d         d         d
         d         dk    sJ ‚d|v sJ ‚|d         d         dk    sJ ‚t          |ddg¬¦  «        }d|d         v sJ ‚d|d         vsJ ‚d|d         vsJ ‚|d         d         d         d         dk    sJ ‚|d         d         d         d         dk    sJ ‚d|v sJ ‚|d         d         dk    sJ ‚t          |d¬¦  «         dS )z-Test get_statistics with key filter parameterÚkey_filter_testrS   Úkey_filter_test_statisticsTr   r   r   r   r   r"   Fr#   r$   r(   r   r   r    r!   ©Úkeysr/   r)   r0   r,   r-   r.   r1   r2   r5   N)r7   r8   r9   rU   r
   r   r   r=   r	   r>   r?   r   r   )	r   rE   rF   Ú_rH   rI   Ú	all_statsÚcategory_statsÚscore_statss	            rN   Ú"test_statistics_wrapper_key_filterrg   ×   s  € åÔ&Ð'8Ñ9Ô9€FØ
‡L‚L�N„N€Nà×)Ò)Ð/@Ð)ÑAÔA€Jõ ,¨JÐ8TÑUÔU�J€A€wØ�dˆ?ˆ?ˆ?ˆ?å,¨V°Z´_ÑEÔE€Oð ‡N‚NØ$Ð$Ð$ØKÐKÐKà r°TÐ:Ð:Ø r°UÐ;Ð;Ø r°TÐ:Ð:ð
ð ñ ô ð õ ˜f j¤o°ÑGÔGÐGÝ„Jˆr�N„N€Nõ ˜zÐ+GÑHÔH€IØ˜ <Ô0Ð0Ð0Ð0Ð0Ø�i Ô-Ð-Ð-Ð-Ð-Ø�y Ô.Ð.Ð.Ð.Ð.õ $ØÐ0¸
°|ðñ ô €Nð ˜¨Ô5Ð5Ð5Ð5Ð5Ø˜.¨Ô6Ð6Ð6Ð6Ð6Ø˜>¨,Ô7Ð7Ð7Ð7Ð7Ø˜,Ô'¨
Ô3°CÔ8¸ÔAÀQÒFÐFÐFÐFØ˜,Ô'¨
Ô3°CÔ8¸ÔAÀQÒFÐFÐFÐFà˜Ð&Ð&Ð&Ð&Ø˜)Ô$ ]Ô3°qÒ8Ð8Ð8Ð8õ !ØÐ0¸°yðñ ô €Kð �k ,Ô/Ð/Ð/Ð/Ð/Ø˜[¨Ô6Ð6Ð6Ð6Ð6Ø˜; |Ô4Ð4Ð4Ð4Ð4Ø�|Ô$ WÔ-¨dÔ3°GÔ<ÀÒAÐAÐAÐAØ�|Ô$ WÔ-¨dÔ3°GÔ<ÀÒAÐAÐAÐAà˜Ð#Ð#Ð#Ð#Ø�yÔ! -Ô0°AÒ5Ð5Ð5Ð5õ ˜zÀ4ÐHÑHÔHÐHÐHÐHrP   c                 óÜ  — t          j        | ¦  «        }|                     ¦   «          |                     d¬¦  «        }t	          |d¦  «         d„ t          d¦  «        D ¦   «         }t          j        t          ¦  «        5 }t          |d|¬¦  «         ddd¦  «         n# 1 swxY w Y   dt          |j        ¦  «        v sJ ‚d	t          |j        ¦  «        v sJ ‚t          |d
¬¦  «         dS )zNTest that get_statistics raises ValueError when more than 30 keys are providedÚtoo_many_keys_testrS   Útoo_many_keys_test_statisticsc                 ó   — g | ]}d |› �‘ŒS )Úkey_© ©Ú.0Úis     rN   ú
<listcomp>zDtest_statistics_wrapper_key_filter_too_many_keys.<locals>.<listcomp>!  s   € Ð3Ð3Ð3 A�Z˜A�Z�ZÐ3Ð3Ð3rP   é   ra   NzToo many keys provided: 31zMaximum allowed is 30Tr5   )r7   r8   r9   rU   r
   ÚrangeÚpytestÚraisesÚ
ValueErrorr   Ústrr\   r   )r   rE   rF   Útoo_many_keysÚexc_infos        rN   Ú0test_statistics_wrapper_key_filter_too_many_keysrz     sB  € åÔ&Ð'8Ñ9Ô9€FØ
‡L‚L�N„N€Nà×)Ò)Ð/CÐ)ÑDÔD€Jõ ˜zÐ+JÑKÔKÐKð 4Ð3­¨r©¬Ð3Ñ3Ô3€Mõ 
Œ•zÑ	"Ô	"ð X hÝ�zÐ#BÈÐWÑWÔWÐWðXð Xð Xñ Xô Xð Xð Xð Xð Xð Xð Xøøøð Xð Xð Xð Xð (­3¨x¬~Ñ+>Ô+>Ð>Ð>Ð>Ð>Ø"¥c¨(¬.Ñ&9Ô&9Ð9Ð9Ð9Ð9õ ˜zÀ4ÐHÑHÔHÐHÐHÐHs   ÂB Â B$Â'B$c                 ó‚  — t          j        | ¦  «        }|                     ¦   «          |                     d¬¦  «        }t	          |d¦  «        \  }}|du sJ ‚t          ||j        ¦  «        }|                     ddgddgd	d
id	d
ig¬¦  «         t          ||j        |¦  «         t          ||j        ¦  «        }t          |d¦  «        }|d         d	         d
         d         dk    sJ ‚|d         d         dk    sJ ‚|                     ddgddgd	did	d
ig¬¦  «         t          ||j        |¦  «         t          j        d¦  «         t          |d¦  «        }|d         d	         d
         d         dk    sJ ‚|d         d	         d         d         dk    sJ ‚|d         d         dk    sJ ‚t          |d¬¦  «         dS )z.Test that statistics are updated incrementallyÚincremental_testrS   Úincremental_test_statisticsTrZ   Úid2r   r   r   r   r$   r   r/   r)   r,   r-   Úid3Úid4r   Údoc4r"   éF   r.   r0   é   r5   N)r7   r8   r9   rU   r
   r   r   r=   r	   r   r>   r?   r   )r   rE   rF   rc   rH   rI   Únext_versionrJ   s           rN   Ú+test_statistics_wrapper_incremental_updatesr…   /  s  € åÔ&Ð'8Ñ9Ô9€FØ
‡L‚L�N„N€Nà×)Ò)Ð/AÐ)ÑBÔB€JÝ+¨JÐ8UÑVÔV�J€A€wØ�dˆ?ˆ?ˆ?ˆ?å,¨V°Z´_ÑEÔE€Oð ‡N‚NØ�EˆNØ˜6Ð"Ø Ð$ z°3Ð&7Ð8ð ñ ô ð õ ˜f j¤o°ÑGÔGÐGÝ)¨&°*´/ÑBÔB€Lõ ˜:Ð'DÑEÔE€EØ�Ô˜zÔ*¨3Ô/°Ô8¸AÒ=Ð=Ð=Ð=Ø�Ô˜MÔ*¨aÒ/Ð/Ð/Ð/ð ‡N‚NØ�EˆNØ˜6Ð"Ø Ð$ z°3Ð&7Ð8ð ñ ô ð õ ˜f j¤o°|ÑDÔDÐDõ 	„Jˆr�N„N€Nõ ˜:Ð'DÑEÔE€EØ�Ô˜zÔ*¨3Ô/°Ô8¸AÒ=Ð=Ð=Ð=Ø�Ô˜zÔ*¨3Ô/°Ô8¸AÒ=Ð=Ð=Ð=Ø�Ô˜MÔ*¨aÒ/Ð/Ð/Ð/å˜zÀ4ÐHÑHÔHÐHÐHÐHrP   c           	      óv  — t          j        | ¦  «        }|                     ¦   «          |                     d¬¦  «        }t	          g d¢g d¢g d¢¬¦  «        }t	          ddgd	d
gddg¬¦  «        }t	          ddgddgddg¬¦  «        }|                     g d¢g d¢d|dœd|dœd|dœg¬¦  «         t          |d¦  «        \  }}|du sJ ‚t          ||j        ¦  «        }t          ||j        |¦  «         t          |d¦  «        }	t          d¦  «         t          t          j        |	d¬¦  «        ¦  «         d|	v sJ ‚d|	v sJ ‚|	d         d          d!k    sJ ‚d"|	d         v sJ ‚d|	d         d"         v sJ ‚d|	d         d"         v sJ ‚|	d         d"         d         d#         dk    sJ ‚|	d         d"         d         d#         d$k    sJ ‚d%|	d         v sJ ‚d|	d         d%         v s
J d&¦   «         ‚d|	d         d%         v s
J d'¦   «         ‚d|	d         d%         v s
J d(¦   «         ‚d|	d         d%         v s
J d)¦   «         ‚|	d         d%         d         d#         dk    sJ ‚|	d         d%         d         d#         dk    sJ ‚|	d         d%         d         d#         dk    sJ ‚|	d         d%         d         d#         d$k    sJ ‚d*S )+z7Test statistics with sparse vector that includes labelsÚsparse_vector_test1rS   )éd   éÈ   é,  )g      ð?ç       @ç      @)ÚappleÚbananaÚcherry)ÚindicesÚvaluesÚlabelsrˆ   i�  g      ø?g      @r�   Údater‰   rŠ   r‹   rŒ   rŽ   r�   )rZ   r~   r   r   r   )r   Úvecr"   r$   Úsparse_vector_test1_statisticsTz!
Sparse vector statistics output:r)   r*   r   r,   r-   r.   r   r/   r0   r”   z$Should use label 'apple' not hash IDz%Should use label 'banana' not hash IDz%Should use label 'cherry' not hash IDz#Should use label 'date' not hash IDN)r7   r8   r9   rU   r   r=   r
   r   r   r	   r   r@   rA   rB   )
r   rE   rF   Úsparse_vec1Úsparse_vec2Úsparse_vec3rc   rH   rI   rJ   s
             rN   Útest_sparse_vector_statisticsr™   ^  s¹  € åÔ&Ð'8Ñ9Ô9€FØ
‡L‚L�N„N€Nà×)Ò)Ð/DÐ)ÑEÔE€Jõ Ø��ØˆˆØ,Ð,Ð,ðñ ô €Kõ
 Ø�c�
 C¨ :°wÀÐ6Gðñ ô €Kõ Ø�c�
 C¨ :°xÀÐ6Jðñ ô €Kð
 ‡N‚NØ!Ð!Ð!Ø*Ð*Ð*à [Ð1Ð1Ø [Ð1Ð1Ø [Ð1Ð1ð
ð ñ ô ð õ ,ØÐ4ñô �J€A€wð �dˆ?ˆ?ˆ?ˆ?å,¨V°Z´_ÑEÔE€Oå˜f j¤o°ÑGÔGÐGõ ˜:Ð'GÑHÔH€EÝ	Ð
.Ñ/Ô/Ð/Ý	�$Œ*�U 1Ð
%Ñ
%Ô
%Ñ&Ô&Ð&à˜5Ð Ð Ð Ð Ø˜ÐÐÐÐØ�Ô˜MÔ*¨aÒ/Ð/Ð/Ð/ð ˜˜|Ô,Ð,Ð,Ð,Ð,Ø�%˜Ô% jÔ1Ð1Ð1Ð1Ð1Ø�%˜Ô% jÔ1Ð1Ð1Ð1Ð1Ø�Ô˜zÔ*¨3Ô/°Ô8¸AÒ=Ð=Ð=Ð=Ø�Ô˜zÔ*¨3Ô/°Ô8¸AÒ=Ð=Ð=Ð=ð �E˜,Ô'Ð'Ð'Ð'Ð'Ø�e˜LÔ)¨%Ô0Ð0Ð0Ð0Ð2XÑ0Ô0Ð0à�E˜,Ô'¨Ô.Ð.Ð.Ð.Ø.ñ 	/Ô.Ð.ð 	�E˜,Ô'¨Ô.Ð.Ð.Ð.Ø.ñ 	/Ô.Ð.à�U˜<Ô(¨Ô/Ð/Ð/Ð/Ð1VÑ/Ô/Ð/ð �Ô˜uÔ% gÔ.¨wÔ7¸1Ò<Ð<Ð<Ð<Ø�Ô˜uÔ% hÔ/°Ô8¸AÒ=Ð=Ð=Ð=Ø�Ô˜uÔ% hÔ/°Ô8¸AÒ=Ð=Ð=Ð=Ø�Ô˜uÔ% fÔ-¨gÔ6¸!Ò;Ð;Ð;Ð;Ð;Ð;rP   c           	      ój  — t          j        | ¦  «        }|                     ¦   «          |                     d¬¦  «        }d}d}d„ t	          |¦  «        D ¦   «         }d„ t	          |¦  «        D ¦   «         }g }t	          |¦  «        D ]9}i }	t	          |¦  «        D ]}
d|
› d|› �|	d	|
› �<   Œ|                     |	¦  «         Œ:d
}t          ||j        ¦  «        }t	          d||¦  «        D ];}|                     ||||z   …         ||||z   …         ||||z   …         ¬¦  «         Œ<t          ||j        |¦  «         t          ||j        ¦  «        }t          |d¦  «        \  }}|du sJ ‚t          ||j        |¦  «         t          |d¦  «        }d|v sJ ‚t	          |¦  «        D ]j}
d	|
› �}||d         v sJ ‚|d         |         }t          |¦  «        |k    sJ ‚t	          |¦  «        D ]$}d|
› d|› �}||v sJ ‚||         d         dk    sJ ‚Œ%Œk|d         d         |k    sJ ‚t          |d¬¦  «         dS )z.Test statistics with high cardinality metadataÚhigh_cardinality_testrS   iô  r   c                 ó   — g | ]}d |› �‘ŒS )Úidrm   rn   s     rN   rq   z4test_statistics_high_cardinality.<locals>.<listcomp>±  s   € Ð
-Ð
-Ð
-˜ˆ8�ˆ8ˆ8Ð
-Ð
-Ð
-rP   c                 ó   — g | ]}d |› �‘ŒS )Údocrm   rn   s     rN   rq   z4test_statistics_high_cardinality.<locals>.<listcomp>²  s   € Ð4Ð4Ð4˜q��q��Ð4Ð4Ð4rP   Úvalue_rc   Úfield_rˆ   r   r$   Ú high_cardinality_test_statisticsTr   r/   r0   r,   r-   r5   N)r7   r8   r9   rU   rs   Úappendr   r   r=   r	   r
   r   Úlenr   )r   rE   rF   Únum_docsÚ
num_fieldsr%   r&   r'   rp   ÚmetaÚjÚ
batch_sizerI   rc   rH   rJ   Ú	field_keyÚfield_statsr\   s                      rN   Ú test_statistics_high_cardinalityr¬   §  sí  € åÔ&Ð'8Ñ9Ô9€FØ
‡L‚L�N„N€Nà×)Ò)Ð/FÐ)ÑGÔG€Jð €HØ€JØ
-Ð
-�U 8™_œ_Ð
-Ñ
-Ô
-€CØ4Ð4¥E¨(¡O¤OÐ4Ñ4Ô4€Ià&(€IÝ�8‰_Œ_ð ð ˆØ!ˆÝ�zÑ"Ô"ð 	2ð 	2ˆAØ!1¨!Ð!1Ð!1¨aÐ!1Ð!1ˆD�˜!��ÑÐØ×Ò˜ÑÔÐÐð €JÝ,¨V°Z´_ÑEÔE€Oå�1�h 
Ñ+Ô+ð 
ð 
ˆØ�ŠØ�A˜˜J™Ð&Ô'Ø  A¨
¡NÐ 2Ô3Ø  A¨
¡NÐ 2Ô3ð 	ñ 	
ô 	
ð 	
ð 	
õ ˜f j¤o°ÑGÔGÐGÝ,¨V°Z´_ÑEÔE€Oõ ,ØÐ6ñô �J€A€wð �dˆ?ˆ?ˆ?ˆ?õ ˜f j¤o°ÑGÔGÐGõ ˜:Ð'IÑJÔJ€Eà˜5Ð Ð Ð Ð õ �:ÑÔð 4ð 4ˆØ ˜Q�L�Lˆ	Ø˜E ,Ô/Ð/Ð/Ð/Ð/à˜LÔ)¨)Ô4ˆÝ�;ÑÔ 8Ò+Ð+Ð+Ð+õ �x‘”ð 	4ð 	4ˆAØ$˜QÐ$Ð$ Ð$Ð$ˆEØ˜KÐ'Ð'Ð'Ð'Ø˜uÔ% gÔ.°!Ò3Ð3Ð3Ð3Ð3ð	4ð �Ô˜MÔ*¨hÒ6Ð6Ð6Ð6å˜zÀ4ÐHÑHÔHÐHÐHÐHrP   ) Ú__doc__rA   r>   Útypingr   rt   Úchromadb.api.clientr   r7   Úchromadb.base_typesr   Úchromadb.configr   Úchromadb.test.conftestr   Ú-chromadb.test.utils.wait_for_version_increaser   r	   Úchromadb.utils.statisticsr
   r   r   r   Ú
pytestmarkrO   rV   r]   rg   rz   r…   r™   r¬   rm   rP   rN   ú<module>r¶      sY  ððð ð €€€Ø €€€Ø Ð Ð Ð Ð Ð à €€€à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø "Ð "Ð "Ð "Ð "Ð "Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð "Ð!Ñ#Ô#Ð$€
ðP(¨vð P(¸$ð P(ð P(ð P(ð P(ðfB°ð B¸4ð Bð Bð Bð BðJIÈð IÐSWð Ið Ið Ið IðD<I¸&ð <IÀTð <Ið <Ið <Ið <Ið~IÈð IÐSWð Ið Ið Ið Ið2,IÀ6ð ,IÈdð ,Ið ,Ið ,Ið ,Ið^F<°Vð F<Àð F<ð F<ð F<ð F<ðRBI¸ð BIÀ4ð BIð BIð BIð BIð BIð BIrP   