§
    ˜Štj€  ã                   óæ  — 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                             ee¬¦  «        d
eddfd„¦   «         Zej                             ee¬¦  «        d
eddfd„¦   «         Zej                             ee¬¦  «        d
eddfd„¦   «         Zej                             ee¬¦  «        d
eddfd„¦   «         ZdS )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                 ó²   — |                       ¦   «         }|                     ¦   «          dt          ¦   «         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       ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/test/api/test_search_api.pyÚ_create_test_collectionr      sV   € ð ×7Ò7Ñ9Ô9€FØ
‡L‚L�N„N€Nà6­©¬¬Ð6Ð6€OØ×0Ò0°oÐ0ÑFÔF€Jà�vÐÐó    )Úreasonc                 ó¦  — t          | ¦  «        \  }}|                     g d¢g d¢g d¢g d¢g d¢g¬¦  «         t          ¦   «                              t	          g d¢d¬¦  «        ¦  «        }|                     |t          j        ¬	¦  «        }|d
         €J ‚t          |d
         ¦  «        dk    sJ ‚t          |d
         d         ¦  «        dk    sJ ‚dS )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Ð@TÐ@TÐUð ñ ô ð õ ‰XŒX�]Š]�3Ð%9Ð%9Ð%9ÀÐDÑDÔDÑEÔE€FØ×Ò µ9Ô3JÐÑKÔK€Gà�5Œ>Ð%Ð%Ð%Ýˆw�uŒ~ÑÔ !Ò#Ð#Ð#Ð#Ýˆw�uŒ~˜aÔ Ñ!Ô! AÒ%Ð%Ð%Ð%Ð%Ð%r   c                 ód  — t          | ¦  «        \  }}|                     g d¢g d¢g d¢g d¢g d¢g¬¦  «         t          ¦   «                              t	          g d¢d¬¦  «        ¦  «        }|                     |t          j        ¬	¦  «        }|d
         €J ‚t          |d
         ¦  «        dk    sJ ‚dS )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Ð@TÐ@TÐUð ñ ô ð õ ‰XŒX�]Š]�3Ð%9Ð%9Ð%9ÀÐDÑDÔDÑEÔE€FØ×Ò µ9Ô3GÐÑHÔH€Gð �5Œ>Ð%Ð%Ð%Ýˆw�uŒ~ÑÔ !Ò#Ð#Ð#Ð#Ð#Ð#r   c                 ód  — t          | ¦  «        \  }}|                     g d¢g d¢g d¢g d¢g d¢g¬¦  «         t          ¦   «                              t	          g d¢d¬¦  «        ¦  «        }|                     |t          j        ¬	¦  «        }|d
         €J ‚t          |d
         ¦  «        dk    sJ ‚dS )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Ð@TÐ@TÐUð ñ ô ð õ ‰XŒX�]Š]�3Ð%9Ð%9Ð%9ÀÐDÑDÔDÑEÔE€FØ×Ò µ9Ô3RÐÑSÔS€Gà�5Œ>Ð%Ð%Ð%Ýˆw�uŒ~ÑÔ !Ò#Ð#Ð#Ð#Ð#Ð#r   c                 óˆ  — t          | ¦  «        \  }}|                     ddgddgg d¢g d¢g¬¦  «         t          ¦   «                              t	          g d¢d¬	¦  «        ¦  «        }|                     |¦  «        }|d
         €J ‚t          |d
         ¦  «        dk    sJ ‚t          |d
         d         ¦  «        dk    sJ ‚dS )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ŒX�]Š]�3Ð%9Ð%9Ð%9ÀÐDÑDÔDÑEÔ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      s  ðØ (Ð (à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€à "Ð "Ð "Ð "Ð "Ð "Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð
Ø%ð
à
ˆ:�yÐ Ô!ð
ð 
ð 
ð 
ð „×ÒÐ*Ð3MÐÑNÔNð&Ø%ð&à	ð&ð &ð &ñ OÔNð&ð, „×ÒÐ*Ð3MÐÑNÔNð$Ø%ð$à	ð$ð $ð $ñ OÔNð$ð0 „×ÒÐ*Ð3MÐÑNÔNð$Ø%ð$à	ð$ð $ð $ñ OÔNð$ð( „×ÒÐ*Ð3MÐÑNÔNð&Ø%ð&à	ð&ð &ð &ñ OÔNð&ð &ð &r   