Ë
    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 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)z9Tests for the Count API endpoint with read_level support.é    )ÚTuple)Úuuid4N)Ú	ClientAPI)Ú
Collection)Ú	ReadLevel)Ú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.Úcount_api_test_)Úname)Úcreate_client_from_systemÚresetr   ÚhexÚget_or_create_collection)r   ÚclientÚcollection_nameÚ
collections       úe/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/test/api/test_count_api.pyÚ_create_test_collectionr      sK   € ð ×7Ñ7Ó9€FØ
‡L�L„Nà'¬«¯© }Ð5€OØ×0Ñ0°oÐ0ÓF€Jà�vÐÐó    )Úreasonc                 ó°   — t        | «      \  }}|j                  g d¢g d¢g d¢g d¢g d¢g¬«       |j                  t        j                  ¬«      }|dk(  sJ ‚y	)
zHTest count with ReadLevel.INDEX_AND_WAL (default) returns correct count.©Údoc1Údoc2Údoc3©zapple fruitzbanana fruitzcar vehicle©gš™™™™™¹?çš™™™™™É?ç333333Ó?çš™™™™™Ù?©r"   r#   r$   ç      à?©gÍÌÌÌÌÌì?çš™™™™™é?çffffffæ?ç333333ã?©ÚidsÚ	documentsÚ
embeddings©Ú
read_levelé   N)r   ÚaddÚcountr   ÚINDEX_AND_WAL©r   r   Ú_r3   s       r   Ú(test_count_with_read_level_index_and_walr7      s]   € ô
 ,Ð,<Ó=�M€J�à‡N�NÚ$Ú@Ú(Ò*>Ò@TÐUð ô ð ×Ñ¬	×(?Ñ(?ÐÓ@€EØ�AŠ:Ð‰:r   c                 óÔ   — t        | «      \  }}|j                  g d¢g d¢g d¢g d¢g d¢g¬«       |j                  t        j                  ¬«      }t        |t        «      sJ ‚|dk\  sJ ‚y	)
z;Test count with ReadLevel.INDEX_ONLY returns a valid count.r   r    r!   r%   r'   r+   r/   r   N)r   r2   r3   r   Ú
INDEX_ONLYÚ
isinstanceÚintr5   s       r   Ú%test_count_with_read_level_index_onlyr<   0   sm   € ô
 ,Ð,<Ó=�M€J�à‡N�NÚ$Ú@Ú(Ò*>Ò@TÐUð ô ð ×Ñ¬	×(<Ñ(<ÐÓ=€EÜ�eœSÔ!Ð!Ð!Ø�AŠ:Ð‰:r   c                 óÔ   — t        | «      \  }}|j                  g d¢g d¢g d¢g d¢g d¢g¬«       |j                  t        j                  ¬«      }t        |t        «      sJ ‚|dk\  sJ ‚y	)
zFTest count with ReadLevel.INDEX_AND_BOUNDED_WAL returns a valid count.r   r    r!   r%   r'   r+   r/   r   N)r   r2   r3   r   ÚINDEX_AND_BOUNDED_WALr:   r;   r5   s       r   Ú0test_count_with_read_level_index_and_bounded_walr?   D   sm   € ô
 ,Ð,<Ó=�M€J�à‡N�NÚ$Ú@Ú(Ò*>Ò@TÐUð ô ð ×Ñ¬	×(GÑ(GÐÓH€EÜ�eœSÔ!Ð!Ð!Ø�AŠ:Ð‰:r   c                 óŠ   — t        | «      \  }}|j                  ddgddgg d¢g d¢g¬«       |j                  «       }|dk(  sJ ‚y	)
zDTest count without explicit read_level uses default (INDEX_AND_WAL).r   r   zhello worldzgoodbye worldr!   )r&   r*   r)   r(   r+   é   N)r   r2   r3   r5   s       r   Útest_count_default_read_levelrB   X   sY   € ô
 ,Ð,<Ó=�M€J�à‡N�NØ�VÐØ  /Ð2Ú(Ò*>Ð?ð ô ð ×ÑÓ€EØ�AŠ:Ð‰:r   )Ú__doc__Útypingr   Úuuidr   ÚpytestÚchromadb.apir   Úchromadb.api.models.Collectionr   Úchromadb.api.typesr   Úchromadb.test.conftestr   r	   r
   r   ÚmarkÚskipifr7   r<   r?   rB   © r   r   ú<module>rN      s/  ðÙ ?å Ý ã å "Ý 5Ý (÷ñ ð
Ø%ð
à
ˆ:�yÐ Ñ!ó
ð ‡�×ÑÐ*Ð3MÐÓNðØ%ðà	òó Oðð  ‡�×ÑÐ*Ð3MÐÓNðØ%ðà	òó Oðð& ‡�×ÑÐ*Ð3MÐÓNðØ%ðà	òó Oðð& ‡�×ÑÐ*Ð3MÐÓNðØ%ðà	òó Oñr   