
    LKiB                        S SK r S SKJr  S SKJrJrJrJr  S SKrS SK	r
S SKrS SKJr  S SKJrJr  S SKJr  S SKJrJr  S SKJr  S SKJrJrJr  S SKJs  Js  Jr  S SKJs  Js  Jr  S S	K J!r!  S S
K"J#r#  \RH                  " \RJ                  " SS9SS9r&\" \&\RN                  " \&SSS9S9\" S\" \R                   " SS9\R                   " SS9S9SS9S\S\RP                  S\RR                  SS4S j5       5       r*\" \&\RN                  " \&SSS9\RV                  " 5       S9\" S\" \R                   " SS9\R                   " SS9S9S9S\S\RP                  S\RR                  S \,SS4
S! j5       5       r-\\" \&\RN                  " \&S"SSSSS#9\RV                  " 5       S9\" S\" \R                   " S$S9\R                   " SS9S9\R\                  R^                  \R\                  R`                  \R\                  Rb                  \R\                  Rd                  /S%9S\S\RP                  S\RR                  S \,SS4
S& j5       5       5       r3  S8S\S\RP                  S\RR                  S \,S'\,S(\,SS4S) jjr4  S9S*\5S+\5S\RR                  4S, jjr6\" \&\RV                  " 5       S-9\" SSS.9S\S\RP                  S \,SS4S/ j5       5       r7\" \&S09\" SSS.9S\S\RP                  SS4S1 j5       5       r8\Rr                  Ru                  S2S39S\SS4S4 j5       r;S\SS4S5 jr<\Rr                  R{                  \S6S39S\SS4S7 j5       r>g):    N)randint)castListAnyDict)givensettings)	ClientAPI)
Embeddings	Metadatas)multi_region_test)NOT_CLUSTER_ONLYoverride_hypothesis_profilecreate_isolated_database)wait_for_version_increase)create_batchesT)with_hnsw_paramscoll)key      min_sizemax_size)
collection
record_seti  )max_examples   )normalfast   )deadlineparentr   clientr   r   returnc                     U R                  5       R                  S:X  a  [        R                  " S5        [	        XUSSS9  g )N'chromadb.api.async_fastapi.AsyncFastAPIDTODO @jai, come back and debug why CI runners fail with async + syncT)always_compactget_settingschroma_api_implpytestskip	_test_add)r$   r   r   s      a/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/chromadb/test/property/test_add.pytest_add_minisculer1      s?    $ 	--4	5 	R	
 f*d4H    )r   r   should_compact)r"   r#   r3   c                     U R                  5       R                  S:X  a  [        R                  " S5        [	        XX#5        g )Nr'   r(   r*   r$   r   r   r3   s       r0   test_add_smallr6   8   s;    & 	--4	5 	R	
 f*=r2      )r   r   num_unique_metadatamin_metadata_sizemax_metadata_size
   )r"   r#   suppress_health_checkc                     U R                  5       R                  S:X  a  [        R                  " S5        [	        XX#SS9  g )Nr'   r(   T)batch_ann_accuracyr*   r5   s       r0   test_add_mediumr?   T   s?    B 	--4	5 	R	
 f*QUVr2   r>   r)   c                    [        U 5        U R                  UR                  UR                  UR                  UR
                  S9n[        [        UR                  5       S   5      n[        R                  " U5      n[        U [        [        [           US   5      [        [        US   5      [        [        US   5      [        [        [           US   5      S9 H  n	UR                   " U	6   M     ["        (       d6  U(       a/  [%        US   5      S:  d  U(       a  ['        XR                  U5        [        R(                  " U[        [*        R,                  U5      5        [/        S	[%        US   5      S-  5      n
U(       a  Sn[1        S
[%        US   5      U5       Hh  n[        R2                  " U[        [*        R,                  U5      U
UR                  [5        [1        U[7        X-   [%        US   5      5      5      5      S9  Mj     g [        R2                  " U[        [*        R,                  U5      U
UR                  S9  g )N)namemetadataembedding_functionconfigurationversionids
embeddings	metadatas	documentsapirF   rG   rH   rI   r;   r   r   )	n_resultsrC   query_indices)rL   rC   )r   create_collectionrA   rB   rC   collection_configr   int	get_model
invariantswrap_allr   r   strr   r   addr   lenr   count
strategies	RecordSetmaxrangeann_accuracylistmin)r$   r   r   r3   r>   r)   r   initial_versionnormalized_record_setbatchrL   
batch_sizeis                r0   r/   r/      s    V$ ##__$$%88 22	 $ D 3 0 ;<O&//
;  cJu-.
J|$<=y*["9:tCy*["9: 	% &u-.3~ 	"&//?KT4
 4 46KLMA1%89R?AI
q#3E:;ZHA##Z))+@A##-#@#@"!S5J55Q1RST I 	%%'<=)<<		
r2   r   r   c                    [        X5      n[        U5       Vs/ s H!  n[        [        R                  " 5       5      PM#     nn[        U5       Vs/ s H  nSU 0PM
     nn[        U5       Vs/ s H  nSU 3PM
     nn[        U5       Vs/ s H  n/ SQPM	     nn[
        R                  " U[        [        U5      UUS9n	U	$ s  snf s  snf s  snf s  snf )Nsome_keyz	Document r   r!      rF   rG   rH   rI   )	r   r[   rT   uuiduuid4rX   rY   r   r   )
r   r   size_rF   rc   rH   rI   rG   r   s
             r0   create_large_recordsetrm      s     8&D&+Dk
2k3tzz|kC
2/4T{;{!*%{I;*/+6+Q9QC+I6%*4[1[)[J1%%
J/	J  3;61s   (CC.CC)r   r3   )r"   r   c                    [        U 5        U R                  5       R                  S:X  a  [        R                  " S5        [        SSS9nU R                  UR                  UR                  UR                  S9n[        R                  " U5      n[        [        UR                  5       S   5      n[        U [        [         ["           US   5      [        [$        US	   5      [        [&        US
   5      [        [         ["           US   5      S9 H  nUR(                  " U6   M     [*        (       d.  U(       a'  [-        US   5      S:  a  [/        XR                  USS9  [        R0                  " U[        [2        R4                  U5      5        g )Nr'   r(   i'  P  r   rA   rB   rC   rE   rF   rG   rH   rI   rJ   r;      )additional_time)r   r+   r,   r-   r.   rm   rN   rA   rB   rC   rR   rS   r   rP   rQ   r   r   rT   r   r   rU   r   rV   r   rW   rX   rY   )r$   r   r3   r   r   r`   r_   ra   s           r0   test_add_largers      s]   
 V$ 	--4	5 	R	
 (J ##__$$%88 $ D
 '//
;3 0 ;<OcJu-.
J|$<=y*["9:tCy*["9: 	% %e,-2 	"OO_c	
 T4
 4 46KLMr2   )r   c                    [        U 5        U R                  5       R                  S:X  a  [        R                  " S5        [        U R                  5       U R                  5       S-   S9nU R                  UR                  UR                  UR                  S9n[        R                  " [        5       nUR                  " S0 UD6  S S S 5        S[        WR                  5      ;   d   eg ! , (       d  f       N*= f)Nr'   r(   d   r   rp   z
batch size )r   r+   r,   r-   r.   rm   get_max_batch_sizerN   rA   rB   rC   raises	ExceptionrU   rT   value)r$   r   r   r   es        r0   test_add_large_exceedingr|   	  s    
 V$ 	--4	5 	R	
 (**,**,
J
 ##__$$%88 $ D 
y	!Q: 
"3qww<''' 
"	!s   2C))
C7z`This is expected to fail right now. We should change the API to sort the     ids by input order.)reasonc                 @   U R                  5       R                  S:X  a  [        R                  " S5        / SQnU R	                  SS S9nU Vs/ s H  n[
        R                  " / SQ5      PM     nnUR                  XS9  UR                  US	9S
   nXQ:X  d   eg s  snf )Nr'   r(   )4005861001003042002930111320706550120341testc                 6    U  Vs/ s H  n/ SQPM	     sn$ s  snf )Nrf   rv   )inputrl   s     r0   <lambda>'test_out_of_order_ids.<locals>.<lambda>S  s    U)CU)U)C)Cs   )rC   rf   )rF   rG   )rF   rF   )	r+   r,   r-   r.   rN   nparrayrU   get)r$   ooo_idsr   rl   rG   get_idss         r0   test_out_of_order_idsr   )  s     	--4	5 	R	
G8 ##C $ D <CC7abhhy17JCHHH0hh7h#E*G Ds   "Bc                 h   [        U 5        U R                  5       R                  S:X  a  [        R                  " S5        U R                  S5      nUR                  / SQ/ SQ/ SQ/ SQ/SS0SSS	0// S
QS9  UR                  5       nUS   / SQ:X  d   eUS   SS0SSS	0/:X  d   eUS   / S
Q:X  d   eg)z>Tests adding a record set with some of the fields set to None.r'   r(   r   )r   r   r   rf   ar   Nrg   )r   bNrh   rF   rH   rI   )r   r+   r,   r-   r.   rN   rU   r   )r$   r   resultss      r0   test_add_partialr   [  s     V$ 	--4	5 	R	
 ##F+DHHy)48TC8,"   hhjG5>_,,,;S!HdS!H#====;#3333r2   z-GroupBy is only supported in distributed modec                 `   SSK JnJnJn  SSKJn  SSKJn  [        U 5        U R                  SS9n/ SQn[        [        / SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      nSSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS.SSSS./n	U V
s/ s H  n
SU
 3PM
     nn
UR                  UUU	US9  / SQnUR                  U" 5       R                  U" USS 95      R                  U" U" S!5      U" UR                   SS"9S#95      R#                  S5      5      nUS$   c   eUS$   S   n[%        U5      S&:X  d   e1 S'kn['        U5      U:X  d   eUR                  U" 5       R                  U" USS 95      R                  U" U" S!5      U" S(5      /U" UR                   SS"9S#95      R#                  S5      5      nUS$   c   eUS$   S   n[%        U5      S&:X  d   e1 S)kn['        U5      U:X  d   eUR                  U" 5       R                  U" USS 95      R                  U" U" S!5      U" U" S*5      UR                   /SS"9S#95      R#                  S5      5      nUS$   c   eUS$   S   n[%        U5      S&:X  d   e1 S+kn['        U5      U:X  d   eg%s  sn
f ),zGTest GroupBy with single key, multiple keys, and multiple ranking keys.r   )GroupByMinKKey)Search)Knntest_group_by)rA   )
sci_2023_1
sci_2023_2
sci_2024_1
sci_2024_2tech_2023_1tech_2023_2tech_2024_1tech_2024_2arts_2023_1arts_2023_2arts_2024_1arts_2024_2)      ?        r   r   )?皙?r   r   )皙?皙?r   r   )ffffff?333333?r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   sciencei  r   )categoryyearpriorityr!   i  rg   techartsdoc_rh      )querylimitr   )keysk)r   	aggregaterF   N   >   r   r   r   r   r   r   r   >   r   r   r   r   r   r   r   >   r   r   r   r   r   r   )&chromadb.execution.expression.operatorr   r   r   "chromadb.execution.expression.planr   chromadb.execution.expressionr   r   rN   r   r   rU   searchrankgroup_bySCOREr   rV   set)r$   r   r   r   r   r   r   rF   rG   rH   idrI   r   results1result1_ids	expected1results2result2_ids	expected2results3result3_ids	expected3s                         r0   test_search_group_byr   z  s3    JI91V$###9DC  !           	
J* !<!<!<!<Tq9Tq9Tq9Tq9Tq9Tq9Tq9Tq9I (++s4tsI+HH	   !E {{	cR(	)	's:$CIIQR:ST	U	r	H E?&&&5/!$K{q   I {y((( {{	cR(	)	*os6{3CII3

 
r
H E?&&&5/!$K{q   I {y((( {{	cR(	)	_S_cii$@AF

 
r
H E?&&&5/!$K{q   I {y(((k ,s   +J+)FF)iȯ  ro   )?ri   randomr   typingr   r   r   r   
hypothesisnumpyr   r-   hypothesis.strategiesrX   str   r	   chromadb.apir
   chromadb.api.typesr   r   chromadb.test.conftestr   r   r   r   !chromadb.test.property.strategiesr   property!chromadb.test.property.invariantsrR   -chromadb.test.utils.wait_for_version_increaser   chromadb.utils.batch_utilsr   sharedcollectionscollection_st
recordsets
CollectionrY   r1   booleansboolr6   HealthChecktoo_slowdata_too_largelarge_base_examplefunction_scoped_fixturer?   r/   rP   rm   rs   r|   markxfailr   r   skipifr   rv   r2   r0   <module>r     sn     ( (    " & " 4 4 
 7 6 6 6 S 5 		*00$GVT $$]QK 
&""4  c2 II%%I $$I 
	I	I$ $$]QM;;=
 
&""4  c2>>%%> $$> 	>
 
>>  $$ ;;= 
&""3  a0
 	''--1166	WW%%W $$W 	W
 
W 4W2  % >
>
%%>
 $$>
 	>

 >
 >
 
>
H  & ->	4a(,N,N#-#8#8,NJN,N	,N ) ?,N^ - 	4a(((#-#8#8(	( ) !(<   +) + +	+\4Y 44 4> :  Q) Q)t Q)	Q)r2   