Ë
    lQêj€  ã                   óÎ  — d Z ddlm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mZ ddlmZmZ dd	lmZmZmZ d
edee	ef   fd„Zej*                  j-                  ee¬«      d
eddfd„«       Zej*                  j-                  ee¬«      d
eddfd„«       Zej*                  j-                  ee¬«      d
eddfd„«       Zej*                  j-                  ee¬«      d
eddfd„«       Zy)z"Tests for the Search API endpoint.é    )ÚTuple)Úuuid4N)Ú	ClientAPI)Ú
Collection)Ú
EmbeddingsÚ	ReadLevel)ÚKnnÚSearch)ÚClientFactoriesÚis_spann_disabled_modeÚskip_reason_spann_disabledÚclient_factoriesÚreturnc                 óœ   — | j                  «       }|j                  «        dt        «       j                  › �}|j	                  |¬«      }||fS )z(Create a test collection with some data.Úsearch_api_test_)Úname)Úcreate_client_from_systemÚresetr   ÚhexÚget_or_create_collection)r   ÚclientÚcollection_nameÚ
collections       úf/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/test/api/test_search_api.pyÚ_create_test_collectionr      sK   € ð ×7Ñ7Ó9€FØ
‡L�L„Nà(¬«¯©¨Ð6€OØ×0Ñ0°oÐ0ÓF€Jà�vÐÐó    )Úreasonc                 óP  — t        | «      \  }}|j                  g d¢g d¢g d¢g d¢g d¢g¬«       t        «       j                  t	        g d¢d¬«      «      }|j                  |t        j                  ¬	«      }|d
   €J ‚t        |d
   «      dk(  sJ ‚t        |d
   d   «      dkD  sJ ‚y)zCTest search with ReadLevel.INDEX_AND_WAL (default) returns results.©Údoc1Údoc2Údoc3©zapple fruitzbanana fruitzcar vehicle©gš™™™™™¹?çš™™™™™É?ç333333Ó?çš™™™™™Ù?©r%   r&   r'   ç      à?©gÍÌÌÌÌÌì?çš™™™™™é?çffffffæ?ç333333ã?©ÚidsÚ	documentsÚ
embeddingsé
   ©ÚqueryÚlimit©Ú
read_levelr/   Né   r   )	r   Úaddr
   Úrankr	   Úsearchr   ÚINDEX_AND_WALÚlen©r   r   Ú_r;   Úresultss        r   Ú)test_search_with_read_level_index_and_walrA       s°   € ô
 ,Ð,<Ó=�M€J�ð ‡N�NÚ$Ú@Ú(Ò*>Ò@TÐUð ô ô ‹X�]‰]œ3Ò%9ÀÔDÓE€FØ×Ñ ´9×3JÑ3JÐÓK€Gà�5‰>Ð%Ð%Ð%Üˆw�u‰~Ó !Ò#Ð#Ð#Üˆw�u‰~˜aÑ Ó! AÒ%Ð%Ñ%r   c                 ó$  — t        | «      \  }}|j                  g d¢g d¢g d¢g d¢g d¢g¬«       t        «       j                  t	        g d¢d¬«      «      }|j                  |t        j                  ¬	«      }|d
   €J ‚t        |d
   «      dk(  sJ ‚y)z6Test search with ReadLevel.INDEX_ONLY returns results.r   r#   r$   r(   r*   r.   r2   r3   r6   r/   Nr8   )	r   r9   r
   r:   r	   r;   r   Ú
INDEX_ONLYr=   r>   s        r   Ú&test_search_with_read_level_index_onlyrD   7   s–   € ô
 ,Ð,<Ó=�M€J�ð ‡N�NÚ$Ú@Ú(Ò*>Ò@TÐUð ô ô ‹X�]‰]œ3Ò%9ÀÔDÓE€FØ×Ñ ´9×3GÑ3GÐÓH€Gð �5‰>Ð%Ð%Ð%Üˆw�u‰~Ó !Ò#Ð#Ñ#r   c                 ó$  — t        | «      \  }}|j                  g d¢g d¢g d¢g d¢g d¢g¬«       t        «       j                  t	        g d¢d¬«      «      }|j                  |t        j                  ¬	«      }|d
   €J ‚t        |d
   «      dk(  sJ ‚y)zATest search with ReadLevel.INDEX_AND_BOUNDED_WAL returns results.r   r#   r$   r(   r*   r.   r2   r3   r6   r/   Nr8   )	r   r9   r
   r:   r	   r;   r   ÚINDEX_AND_BOUNDED_WALr=   r>   s        r   Ú1test_search_with_read_level_index_and_bounded_walrG   P   s’   € ô
 ,Ð,<Ó=�M€J�à‡N�NÚ$Ú@Ú(Ò*>Ò@TÐUð ô ô ‹X�]‰]œ3Ò%9ÀÔDÓE€FØ×Ñ ´9×3RÑ3RÐÓS€Gà�5‰>Ð%Ð%Ð%Üˆw�u‰~Ó !Ò#Ð#Ñ#r   c                 ó*  — t        | «      \  }}|j                  ddgddgg d¢g d¢g¬«       t        «       j                  t	        g d¢d¬	«      «      }|j                  |«      }|d
   €J ‚t        |d
   «      dk(  sJ ‚t        |d
   d   «      dkD  sJ ‚y)zETest search without explicit read_level uses default (INDEX_AND_WAL).r    r!   zhello worldzgoodbye worldr$   )r)   r-   r,   r+   r.   r2   r3   r/   Nr8   r   )r   r9   r
   r:   r	   r;   r=   r>   s        r   Útest_search_default_read_levelrI   e   s®   € ô
 ,Ð,<Ó=�M€J�ð ‡N�NØ�VÐØ  /Ð2Ú(Ò*>Ð?ð ô ô ‹X�]‰]œ3Ò%9ÀÔDÓE€FØ×Ñ Ó'€Gð �5‰>Ð%Ð%Ð%Üˆw�u‰~Ó !Ò#Ð#Ð#Üˆw�u‰~˜aÑ Ó! AÒ%Ð%Ñ%r   )Ú__doc__Útypingr   Úuuidr   ÚpytestÚchromadb.apir   Úchromadb.api.models.Collectionr   Úchromadb.api.typesr   r   Úchromadb.execution.expressionr	   r
   Úchromadb.test.conftestr   r   r   r   ÚmarkÚskipifrA   rD   rG   rI   © r   r   ú<module>rV      s2  ðÙ (å Ý ã å "Ý 5ß 4ß 5÷ñ ð
Ø%ð
à
ˆ:�yÐ Ñ!ó
ð ‡�×ÑÐ*Ð3MÐÓNð&Ø%ð&à	ò&ó Oð&ð, ‡�×ÑÐ*Ð3MÐÓNð$Ø%ð$à	ò$ó Oð$ð0 ‡�×ÑÐ*Ð3MÐÓNð$Ø%ð$à	ò$ó Oð$ð( ‡�×ÑÐ*Ð3MÐÓNð&Ø%ð&à	ò&ó Oñ&r   