
    ug/              
       $   d dl mZmZmZmZmZmZ d dlZd dl	m
Z
 d dlZd dlZd dlmZmZmZmZmZmZ d dlmZ d dlmZ dede
ej2                     fd	Z G d
 deeee               Zddedeeeeeef   f   fdZ ej<                         dedeej>                  ddf   fd       Z ej<                  dedeej>                  ddf   fd       Z!	 ddej>                  deddfdZ"	 ddej>                  deddfdZ#	 ddej>                  deddfdZ$y)    )Dict	GeneratorListOptionalSequenceUnionN)NDArray)URI
DataLoader	DocumentsIDsImageURIs)	ClientAPI)hashing_multimodal_efdatareturnc                 H    t        j                  | j                               S N)nparrayencode)r   s    _/var/www/openai/venv/lib/python3.12/site-packages/chromadb/test/data_loader/test_data_loader.pyencode_datar      s    88DKKM""    c                   4    e Zd Zdeee      deee      fdZy)DefaultDataLoaderurisr   c                 F    |D cg c]  }|d n
t        |       c}S c c}w r   )r   )selfr   uris      r   __call__zDefaultDataLoader.__call__   s(    EIJTcS)99TJJJs   N)	__name__
__module____qualname__r   r   r
   r   r   r"    r   r   r   r      s*    KXhsm4 Khuo9N Kr   r   nc                     t        |       D cg c]  }|  c}t        |       D cg c]  }d| 	 c}t        |       D cg c]  }d| 	 c}dS c c}w c c}w c c}w )N	document_uri_)ids	documentsr   )range)r'   is     r   record_set_with_urisr/      sg     %a)11#)/4Qx8x!	!ox8%*1X.X4sX. )8.s   
AAAclientc              #      K   | j                  dt               t                     }| | j                  |j                         y w)Ncollection_with_data_loader)namedata_loaderembedding_function)create_collectionr   r   delete_collectionr3   r0   
collections     r   r2   r2      sF      ))*%'02 * J
 
Z__-s   AAc              #      K   | j                  dt                     }| | j                  |j                         y w)Ncollection_without_data_loader)r3   r5   )r6   r   r7   r3   r8   s     r   r;   r;   +   s@      ))-02 * J 
Z__-s   <>r;   
n_examplesc                 ,   t        |      }t        j                  t              5  | j	                  |d   |d          d d d        t        j                  t              5  | j                  dg       d d d        y # 1 sw Y   ?xY w# 1 sw Y   y xY w)Nr'   r+   r   r+   r   r   include)r/   pytestraises
ValueErroraddget)r;   r<   
record_sets      r   test_without_data_loaderrH   7   s     &
3J 
z	"&**5!F# 	+ 	
 
# 
z	"&**F8*< 
#	" 
#	" 
#	"s   A>!B
>B
Br2   c                     t        |      }| j                  |d   |d          | j                  dg      }|d   J |d   D ]  }|J  y )Nr>   r+   r,   )r+   r,   r   r@   )r/   rE   rF   )r2   r<   rG   
get_resultr   s        r   test_without_urisrK   I   sr     &
3J##u[) $ 
 -00&0BJf)))6"|| #r   c                    t        |      }| j                  |d   |d          | j                  dg      }|d   J t        |d         D ]  \  }}|J |t	        |d   |         k(  rJ  | j                  |d   t        |d   d         ddg      }|d   J t        |d   d         D ])  \  }}|J |d   J |t	        |d   d   |         k(  r)J  y )	Nr>   r+   r   r?   r   r@   r   )
query_uris	n_resultsrA   )r/   rE   rF   	enumerater   querylen)r2   r<   rG   rJ   r.   r   query_results          r   test_data_loaderrS   Z   sB    &
3J##u $  -00&0BJf)))Z/04{:f#5a#89999 1
 /44f%j(+,  5 L +++\&1!454F#///{<#7#:1#=>>>> 6r   )   )%typingr   r   r   r   r   r   numpyr   numpy.typingr	   rB   chromadbchromadb.api.typesr
   r   r   r   r   r   chromadb.apir   #chromadb.test.ef.test_multimodal_efr   struint8r   r   intr/   fixture
Collectionr2   r;   rH   rK   rS   r&   r   r   <module>ra      s{   C C      K K " E#c #gbhh/ #K
4#89 KC S%Y8L2M-M(N  	.	.x""D$./	. 	. ..x""D$./. . =$,$7$7== 
=& IJ!)!4!4BE	$ IJ?!)!4!4?BE?	?r   