§
    ˜Štjl1 ã                   ód  — d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZ d dlZ G d„ deee                  ¦  «        Z G d„ d	eee                  ¦  «        Z G d
„ d¦  «        Zdd„Zdd„Zdd„Z dd„Z!dd„Z"dd„Z#dd„Z$dd„Z%dd„Z&dd„Z'dd„Z(dd„Z)dS )é    )ÚSchemaÚSparseVectorIndexConfigÚSparseEmbeddingFunctionÚSparseVectorÚStringInvertedIndexConfigÚIntInvertedIndexConfigÚFloatInvertedIndexConfigÚBoolInvertedIndexConfigÚVectorIndexConfigÚHnswIndexConfigÚSpannIndexConfigÚFtsIndexConfigÚEmbeddingFunctionÚ
EmbeddingsÚCmekÚCmekProvider)ÚKey)ÚListÚDictÚAny)ÚValidationErrorNc                   ó°   — e Zd ZdZddefd„Zdee         dee         fd„Ze	defd„¦   «         Z
deeef         fd	„Ze	d
eeef         dd fd„¦   «         ZdS )ÚMockSparseEmbeddingFunctionz+Mock sparse embedding function for testing.Úmock_sparseÚnamec                 ó   — || _         d S ©N©Ú_name)Úselfr   s     ú[/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/test/api/test_schema.pyÚ__init__z$MockSparseEmbeddingFunction.__init__   s   € ØˆŒ
ˆ
ˆ
ó    ÚinputÚreturnc                 ó   — d„ |D ¦   «         S )Nc                 ó8   — g | ]}t          d dgddg¬¦  «        ‘ŒS )r   é   ç      ð?)ÚindicesÚvalues)r   )Ú.0Ú_s     r!   ú
<listcomp>z8MockSparseEmbeddingFunction.__call__.<locals>.<listcomp>    s-   € ÐOÐOÐOÀA• a¨ V°S¸#°JÐ?Ñ?Ô?ÐOÐOÐOr#   © )r    r$   s     r!   Ú__call__z$MockSparseEmbeddingFunction.__call__   s   € ØOÐOÈÐOÑOÔOÐOr#   c                  ó   — dS )Nr   r/   r/   r#   r!   r   z MockSparseEmbeddingFunction.name"   s   € àˆ}r#   c                 ó   — d| j         iS )Nr   r   ©r    s    r!   Ú
get_configz&MockSparseEmbeddingFunction.get_config&   s   € Ø˜œ
Ð#Ð#r#   Úconfigc                 óH   — t          |                      dd¦  «        ¦  «        S )Nr   r   )r   Úget©r5   s    r!   Úbuild_from_configz-MockSparseEmbeddingFunction.build_from_config)   s   € å*¨6¯:ª:°f¸mÑ+LÔ+LÑMÔMÐMr#   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr"   r   r   r0   Ústaticmethodr   r   r   r4   r9   r/   r#   r!   r   r      sô   € € € € € Ø5Ð5ðð ˜Sð ð ð ð ðP˜d 3œið P¨D°Ô,>ð Pð Pð Pð Pð ð�#ð ð ð ñ „\ðð$˜D  c œNð $ð $ð $ð $ð ðN $ s¨C x¤.ð NÐ5Rð Nð Nð Nñ „\ðNð Nð Nr#   r   c                   óÈ   — e Zd ZdZddefd„Zdee         defd„Ze	defd„¦   «         Z
deeef         fd	„Ze	d
eeef         dd fd„¦   «         Zdefd„Zdee         fd„ZdS )ÚMockEmbeddingFunctionz$Mock embedding function for testing.Ú
mock_modelÚ
model_namec                 ó   — || _         d S r   ©Ú_model_name)r    rC   s     r!   r"   zMockEmbeddingFunction.__init__1   s   € Ø%ˆÔÐÐr#   r$   r%   c                 ó(   ‡— dd l Šˆfd„|D ¦   «         S )Nr   c                 óL   •— g | ] }‰                      g d ¢‰j        ¬¦  «        ‘Œ!S ))r)   g       @g      @)Údtype)ÚarrayÚfloat32)r,   r-   Únps     €r!   r.   z2MockEmbeddingFunction.__call__.<locals>.<listcomp>8   s/   ø€ ÐKÐKÐKÀ�—’˜˜˜°´
�Ñ;Ô;ÐKÐKÐKr#   )Únumpy)r    r$   rL   s     @r!   r0   zMockEmbeddingFunction.__call__4   s,   ø€ ØÐÐÐð LÐKÐKÐKÀUÐKÑKÔKÐKr#   c                  ó   — dS )NÚmock_embeddingr/   r/   r#   r!   r   zMockEmbeddingFunction.name:   s   € àÐr#   c                 ó   — d| j         iS )NrC   rE   r3   s    r!   r4   z MockEmbeddingFunction.get_config>   s   € Ø˜dÔ.Ð/Ð/r#   r5   c                 óH   — t          |                      dd¦  «        ¦  «        S )NrC   rB   )rA   r7   r8   s    r!   r9   z'MockEmbeddingFunction.build_from_configA   s   € å$ V§Z¢Z°¸lÑ%KÔ%KÑLÔLÐLr#   c                 ó   — dS )NÚcosiner/   r3   s    r!   Údefault_spacez#MockEmbeddingFunction.default_spaceE   s   € Øˆxr#   c                 ó
   — g d¢S )N)rS   Úl2Úipr/   r3   s    r!   Úsupported_spacesz&MockEmbeddingFunction.supported_spacesH   s   € Ø%Ð%Ð%Ð%r#   N)rB   )r:   r;   r<   r=   r>   r"   r   r   r0   r?   r   r   r   r4   r9   rT   rX   r/   r#   r!   rA   rA   .   s'  € € € € € Ø.Ð.ð&ð & 3ð &ð &ð &ð &ðL˜d 3œið L¨Jð Lð Lð Lð Lð ð �#ð  ð  ð  ñ „\ð ð0˜D  c œNð 0ð 0ð 0ð 0ð ðM $ s¨C x¤.ð MÐ5Lð Mð Mð Mñ „\ðMð˜sð ð ð ð ð& $ s¤)ð &ð &ð &ð &ð &ð &r#   rA   c                   ób  — e Zd ZdZd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d	„Z	d.d
„Z
d.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d„Zd.d „Z d.d!„Z!d.d"„Z"d.d#„Z#d.d$„Z$d.d%„Z%d.d&„Z&d.d'„Z'd.d(„Z(d.d)„Z)d.d*„Z*d.d+„Z+d.d,„Z,d.d-„Z-dS )/ÚTestNewSchemaz$Test cases for the new Schema class.r%   Nc                 ó¸  — t          ¦   «         }|j        €J ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        €J ‚|j        j        j	        €J ‚|j        j        j	        j        du sJ ‚|j        j
        €J ‚|j        j
        j        €J ‚|j        j
        j        j        du sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        €J ‚t#          |j        ¦  «        dk    sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚|j        d         j        j        j        j        dk    sJ ‚dS )z5Test that Schema() initializes with correct defaults.NFTé   ú	#documentú
#embedding)r   ÚdefaultsÚstringÚ	fts_indexÚenabledÚstring_inverted_indexÚ
float_listÚvector_indexÚsparse_vectorÚsparse_vector_indexÚ	int_valueÚint_inverted_indexÚfloat_valueÚfloat_inverted_indexÚbooleanÚbool_inverted_indexÚkeysÚlenr5   Ú
source_key©r    Úschemas     r!   Ú"test_default_schema_initializationz0TestNewSchema.test_default_schema_initializationO   sD  € å‘”ˆð ŒÐ*Ð*Ð*ð ŒÔ%Ð1Ð1Ð1ØŒÔ%Ô/Ð;Ð;Ð;ØŒÔ%Ô/Ô7¸5Ð@Ð@Ð@Ð@ØŒÔ%Ô;ÐGÐGÐGàŒOÔ"Ô8Ô@ÀDÐHÐHÐHÐHð ŒÔ)Ð5Ð5Ð5ØŒÔ)Ô6ÐBÐBÐBàŒOÔ&Ô3Ô;¸uÐDÐDÐDÐDð ŒÔ,Ð8Ð8Ð8ØŒÔ,Ô@ÐLÐLÐLàŒOÔ)Ô=ÔEÈÐNÐNÐNÐNð ŒÔ(Ð4Ð4Ð4ØŒÔ(Ô;ÐGÐGÐGàŒOÔ%Ô8Ô@ÀDÐHÐHÐHÐHð ŒÔ*Ð6Ð6Ð6ØŒÔ*Ô?ÐKÐKÐKàŒOÔ'Ô<ÔDÈÐLÐLÐLÐLð ŒÔ&Ð2Ð2Ð2ØŒÔ&Ô:ÐFÐFÐFàŒOÔ#Ô7Ô?À4ÐGÐGÐGÐGð Œ{Ð&Ð&Ð&Ý�6”;ÑÔ 1Ò$Ð$Ð$Ð$ð ˜fœkÐ)Ð)Ð)Ð)ØŒ{˜;Ô'Ô.Ð:Ð:Ð:ØŒ{˜;Ô'Ô.Ô8ÐDÐDÐDØŒ{˜;Ô'Ô.Ô8Ô@ÀDÐHÐHÐHÐHØŒ{˜;Ô'Ô.ÔDÐPÐPÐPØŒ{˜;Ô'Ô.ÔDÔLÐPUÐUÐUÐUÐUð ˜vœ{Ð*Ð*Ð*Ð*ØŒ{˜<Ô(Ô3Ð?Ð?Ð?ØŒ{˜<Ô(Ô3Ô@ÐLÐLÐLØŒ{˜<Ô(Ô3Ô@ÔHÈDÐPÐPÐPÐPàŒK˜Ô%Ô0Ô=ÔDÔOØòð ð ð ð ð r#   c                 ó¬  — t          ¦   «         }t          ¦   «         }|                     |d¬¦  «        }||u sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        	 €J ‚|j        d         j        j        j        du sJ ‚|j        d         j        j        j        |k    sJ ‚|j        d         j        �J ‚|j        d         j	        �J ‚|j        d         j
        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚dS )zJTest creating a sparse vector index on a specific key with default config.Úcustom_sparse_key©r5   ÚkeyNTF)r   r   Úcreate_indexrn   rf   rg   rb   r5   r`   rd   rh   rj   rl   r_   ©r    rr   r5   Úresults       r!   Ú&test_create_sparse_vector_index_on_keyz4TestNewSchema.test_create_sparse_vector_index_on_key˜   s­  € å‘”ˆõ )Ñ*Ô*ˆØ×$Ò$¨FÐ8KÐ$ÑLÔLˆð ˜ÐÐÐÐð # f¤kÐ1Ð1Ð1Ð1ð Œ{Ð.Ô/Ô=ÐIÐIÐIàŒKÐ+Ô,Ô:ÔNØðð ð ð ŒKÐ+Ô,Ô:ÔNÔVØðð ð ð ð ŒKÐ+Ô,Ô:ÔNÔUØòð ð ð ð
 Œ{Ð.Ô/Ô6Ð>Ð>Ð>ØŒ{Ð.Ô/Ô:ÐBÐBÐBØŒ{Ð.Ô/Ô9ÐAÐAÐAØŒ{Ð.Ô/Ô;ÐCÐCÐCØŒ{Ð.Ô/Ô7Ð?Ð?Ð?ð ŒÔ,Ð8Ð8Ð8ØŒÔ,Ô@ÐLÐLÐLàŒOÔ)Ô=ÔEÈÐNÐNÐNÐNÐNÐNr#   c                 óâ  — t          ¦   «         }t          d¬¦  «        }t          |d¬¦  «        }|                     |d¬¦  «        }||u sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        	 €J ‚|j        d         j        j        }|j        du sJ ‚|j        j	        |k    sJ ‚|j        j
        dk    sJ ‚|j        j	                             ¦   «         d	k    sJ ‚|j        j	                             ¦   «         d
dik    sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        j        j        j	        	 �J ‚dS )zTTest creating a sparse vector index with custom config including embedding function.Úcustom_sparse_ef©r   Úcustom_document_field©Úembedding_functionrp   Úsparse_embeddingsrv   NTr   r   F)r   r   r   rx   rn   rf   rg   rb   r5   r�   rp   r   r4   r_   )r    rr   Úembedding_funcr5   rz   Úsparse_indexs         r!   Ú2test_create_sparse_vector_index_with_custom_configz@TestNewSchema.test_create_sparse_vector_index_with_custom_configÅ   sâ  € å‘”ˆõ 5Ð:LÐMÑMÔMˆÝ(Ø-Ð:Qð
ñ 
ô 
ˆð
 ×$Ò$¨FÐ8KÐ$ÑLÔLˆð ˜ÐÐÐÐð # f¤kÐ1Ð1Ð1Ð1ØŒ{Ð.Ô/Ô=ÐIÐIÐIàŒKÐ+Ô,Ô:ÔNØðð ð ð
 ”{Øô
ä
Ô+ð 	ð Ô# tÐ+Ð+Ð+Ð+ð Ô"Ô5¸ÒGÐGÐGÐGØÔ"Ô-Ð1HÒHÐHÐHÐHð Ô"Ô5×:Ò:Ñ<Ô<ÀÒMÐMÐMÐMØÔ"Ô5×@Ò@ÑBÔBØÐ&ðG
ò 
ð 
ð 
ð 
ð
 ŒÔ,Ð8Ð8Ð8ØŒÔ,Ô@ÐLÐLÐLàŒOÔ)Ô=ÔEÈÐNÐNÐNÐNð ŒOÔ)Ô=ÔDÔWØðð ð ð ð r#   c                 óŒ  — t          ¦   «         }t          ¦   «         }|                     |d¬¦  «        }||u sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚d|j        v sJ ‚|j        d         j        �J ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚dS )ú7Test disabling string inverted index on a specific key.Úcustom_text_keyrv   NFr]   r^   T)r   r   Údelete_indexrn   r`   rc   rb   r_   ry   s       r!   Útest_delete_index_on_keyz&TestNewSchema.test_delete_index_on_keyø   sˆ  € å‘”ˆõ +Ñ,Ô,ˆØ×$Ò$¨FÐ8IÐ$ÑJÔJˆð ˜ÐÐÐÐð ! F¤KÐ/Ð/Ð/Ð/ð Œ{Ð,Ô-Ô4Ð@Ð@Ð@ØŒ{Ð,Ô-Ô4ÔJÐVÐVÐVàŒKÐ)Ô*Ô1ÔGÔOÐSXÐXÐXÐXÐXð ˜fœkÐ)Ð)Ð)Ð)ØŒ{˜;Ô'Ô.Ð:Ð:Ð:ØŒ{˜;Ô'Ô.ÔDÐPÐPÐPàŒK˜Ô$Ô+ÔAÔIÈUÐRÐRÐRÐRð ˜vœ{Ð*Ð*Ð*Ð*àŒK˜Ô%Ô,Ð4Ð4Ð4ð ŒÔ%Ð1Ð1Ð1ØŒÔ%Ô;ÐGÐGÐGàŒOÔ"Ô8Ô@ÀDÐHÐHÐHÐHÐHÐHr#   c                 ó  — t          ¦   «         }t          dt          ¦   «         ¬¦  «        }t          ¦   «         }|                     |d¬¦  «                             |d¬¦  «                             |d¬¦  «        }||u sJ ‚d|j        v sJ ‚d|j        v sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j	        du sJ ‚|j        d         j        j        j
        j        dk    sJ ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j	        d	u sJ ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j	        d	u sJ ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j	        d	u sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j	        du sJ ‚d
|j        v sJ ‚d|j        v sJ ‚|j        d
         j        €J ‚|j        d
         j        j        €J ‚|j        d
         j        j        j	        du sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j	        du sJ ‚dS )zDTest chaining create_index() and delete_index() operations together.Úraw_text©rp   r�   Úembeddings_keyrv   Ú
text_key_1Ú
text_key_2NTFr]   r^   )r   r   r   r   rx   r‰   rn   rf   rg   rb   r5   rp   r`   rd   rh   rj   rl   rc   r_   ra   re   )r    rr   Úsparse_configÚstring_configrz   s        r!   Ú)test_chained_create_and_delete_operationsz7TestNewSchema.test_chained_create_and_delete_operations"  s§  € å‘”ˆõ 0Ø!Õ6QÑ6SÔ6Sð
ñ 
ô 
ˆõ 2Ñ3Ô3ˆð ×Ò }Ð:JÐÑKÔKßŠ\ °Lˆ\ÑAÔAßŠ\ °Lˆ\ÑAÔAð 	ð ˜ÐÐÐÐð   6¤;Ð.Ð.Ð.Ð.Ø˜vœ{Ð*Ð*Ð*Ð*Ø˜vœ{Ð*Ð*Ð*Ð*ð Œ{Ð+Ô,Ô:ÐFÐFÐFàŒKÐ(Ô)Ô7ÔKÐWÐWÐWð ŒKÐ(Ô)Ô7ÔKÔSØðð ð ð ð ŒKØ ôäÔ/´´zØòð ð ð ð Œ{Ð+Ô,Ô3Ð;Ð;Ð;ØŒ{Ð+Ô,Ô7Ð?Ð?Ð?ØŒ{Ð+Ô,Ô6Ð>Ð>Ð>ØŒ{Ð+Ô,Ô8Ð@Ð@Ð@ØŒ{Ð+Ô,Ô4Ð<Ð<Ð<ð Œ{˜<Ô(Ô/Ð;Ð;Ð;ØŒ{˜<Ô(Ô/ÔEÐQÐQÐQØŒ{˜<Ô(Ô/ÔEÔMÐQVÐVÐVÐVÐVð Œ{˜<Ô(Ô6Ð>Ð>Ð>ØŒ{˜<Ô(Ô3Ð;Ð;Ð;ØŒ{˜<Ô(Ô2Ð:Ð:Ð:ØŒ{˜<Ô(Ô4Ð<Ð<Ð<ØŒ{˜<Ô(Ô0Ð8Ð8Ð8ð Œ{˜<Ô(Ô/Ð;Ð;Ð;ØŒ{˜<Ô(Ô/ÔEÐQÐQÐQØŒ{˜<Ô(Ô/ÔEÔMÐQVÐVÐVÐVÐVð Œ{˜<Ô(Ô6Ð>Ð>Ð>ØŒ{˜<Ô(Ô3Ð;Ð;Ð;ØŒ{˜<Ô(Ô2Ð:Ð:Ð:ØŒ{˜<Ô(Ô4Ð<Ð<Ð<ØŒ{˜<Ô(Ô0Ð8Ð8Ð8ð ŒÔ,Ð8Ð8Ð8ØŒÔ,Ô@ÐLÐLÐLàŒOÔ)Ô=ÔEÈÐNÐNÐNÐNð ŒÔ%Ð1Ð1Ð1ØŒÔ%Ô;ÐGÐGÐGàŒOÔ"Ô8Ô@ÀDÐHÐHÐHÐHð ˜fœkÐ)Ð)Ð)Ð)Ø˜vœ{Ð*Ð*Ð*Ð*ØŒ{˜;Ô'Ô.Ð:Ð:Ð:ØŒ{˜;Ô'Ô.Ô8ÐDÐDÐDàŒK˜Ô$Ô+Ô5Ô=ÀÐEÐEÐEÐEàŒ{˜<Ô(Ô3Ð?Ð?Ð?ØŒ{˜<Ô(Ô3Ô@ÐLÐLÐLàŒK˜Ô%Ô0Ô=ÔEÈÐMÐMÐMÐMÐMÐMr#   c                 óª  — t          ¦   «         }t          dd¬¦  «        }|                     |¬¦  «        }||u sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        j        j        j        dk    sJ ‚|j        j        j        j        j	        dk    sJ ‚|j
        d         j        €J ‚|j
        d         j        j        €J ‚|j
        d         j        j        j        du sJ ‚|j
        d         j        j        j        j        dk    sJ ‚|j
        d         j        j        j        j	        d	k    sJ ‚t          d
¬¦  «        }t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |d	¬¦  «         ddd¦  «         n# 1 swxY w Y   t          d¬¦  «        }t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z5Test vector index configuration and key restrictions.rS   Úcustom_source)Úspacerp   r8   NFr^   Tr]   rV   )r–   ú/Vector index cannot be enabled on specific keys©ÚmatchÚ
my_vectorsrv   ú.Cannot create index on special key '#document'rW   ú/Cannot create index on special key '#embedding')r   r   rx   r_   rd   re   rb   r5   r–   rp   rn   ÚpytestÚraisesÚ
ValueError)r    rr   Úvector_configrz   Úvector_config2Úvector_config3s         r!   Ú)test_vector_index_config_and_restrictionsz7TestNewSchema.test_vector_index_config_and_restrictions‡  s€  € å‘”ˆÝ)°À_ÐUÑUÔUˆð ×$Ò$¨MÐ$Ñ:Ô:ˆØ˜ÐÐÐÐð ŒÔ)Ð5Ð5Ð5ØŒÔ)Ô6ÐBÐBÐBàŒOÔ&Ô3Ô;¸uÐDÐDÐDÐDàŒÔ)Ô6Ô=ÔCÀxÒOÐOÐOÐOàŒOÔ&Ô3Ô:ÔEÈÒXÐXÐXÐXð
 Œ{˜<Ô(Ô3Ð?Ð?Ð?ØŒ{˜<Ô(Ô3Ô@ÐLÐLÐLàŒK˜Ô%Ô0Ô=ÔEÈÐMÐMÐMÐMð ŒK˜Ô%Ô0Ô=ÔDÔJÈhÒVÐVÐVÐVð ŒK˜Ô%Ô0Ô=ÔDÔOØòð ð ð õ
 +°Ð6Ñ6Ô6ˆÝŒ]ÝÐOð
ñ 
ô 
ð 	Ið 	Ið ×Ò ~¸<ÐÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Iõ Œ]ÝÐNð
ñ 
ô 
ð 	Hð 	Hð ×Ò ~¸;ÐÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hõ +°Ð6Ñ6Ô6ˆÝŒ]ÝÐOð
ñ 
ô 
ð 	Ið 	Ið ×Ò ~¸<ÐÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið 	Ið 	Is6   Å?F#Æ#F'Æ*F'Ç	G-Ç-G1Ç4G1È#IÉIÉIc                 óè  — t          ¦   «         }t          d¬¦  «        }t          ddd¬¦  «        }t          |d|d¬	¦  «        }|                     |¬
¦  «        }||u sJ ‚|j        j        €J ‚|j        j        j        }|€J ‚|j        du sJ ‚|j	        j
        |u sJ ‚|j	        j
                             ¦   «         dk    sJ ‚|j	        j
                             ¦   «         ddik    sJ ‚|j	        j        dk    sJ ‚|j	        j        €J ‚|j	        j        j        dk    sJ ‚|j	        j        j        dk    sJ ‚|j	        j        j        dk    sJ ‚|j	        j        dk    sJ ‚|j        d         j        €J ‚|j        d         j        j        }|€J ‚|j        du sJ ‚|j	        j
        |u sJ ‚|j	        j        dk    sJ ‚|j	        j        €J ‚|j	        j        j        dk    sJ ‚|j	        j        dk    sJ ‚dS )zATest setting embedding function and HNSW config for vector index.Úcustom_model_v2©rC   éÈ   é    éd   ©Úef_constructionÚmax_neighborsÚ	ef_searchrV   r   )r�   r–   Úhnswrp   r8   NFrO   rC   r^   Tr]   )r   rA   r   r   rx   r_   rd   re   rb   r5   r�   r   r4   r–   r®   r«   r¬   r­   rp   rn   )r    rr   Úmock_efÚhnsw_configr    rz   Údefaults_vectorÚembedding_vectors           r!   Ú2test_vector_index_with_embedding_function_and_hnswz@TestNewSchema.test_vector_index_with_embedding_function_and_hnsw¾  s‡  € å‘”ˆõ (Ð3DÐEÑEÔEˆÝ%Ø¨r¸Sð
ñ 
ô 
ˆõ
 *Ø&ØØØ.ð	
ñ 
ô 
ˆð ×$Ò$¨MÐ$Ñ:Ô:ˆØ˜ÐÐÐÐð ŒÔ)Ð5Ð5Ð5Ø œ/Ô4ÔAˆØÐ*Ð*Ð*ØÔ&¨%Ð/Ð/Ð/Ð/ØÔ%Ô8¸GÐCÐCÐCÐCØÔ%Ô8×=Ò=Ñ?Ô?ÐCSÒSÐSÐSÐSØÔ%Ô8×CÒCÑEÔEØÐ+ðJ
ò 
ð 
ð 
ð 
ð Ô%Ô+¨tÒ3Ð3Ð3Ð3ØÔ%Ô*Ð6Ð6Ð6ØÔ%Ô*Ô:¸cÒAÐAÐAÐAØÔ%Ô*Ô8¸BÒ>Ð>Ð>Ð>ØÔ%Ô*Ô4¸Ò;Ð;Ð;Ð;ØÔ%Ô0Ð4KÒKÐKÐKÐKð Œ{˜<Ô(Ô3Ð?Ð?Ð?Ø!œ; |Ô4Ô?ÔLÐØÐ+Ð+Ð+ØÔ'¨4Ð/Ð/Ð/Ð/ØÔ&Ô9¸WÐDÐDÐDÐDØÔ&Ô,°Ò4Ð4Ð4Ð4ØÔ&Ô+Ð7Ð7Ð7ØÔ&Ô+Ô;¸sÒBÐBÐBÐBàÔ#Ô.°+Ò=Ð=Ð=Ð=Ð=Ð=r#   c                 óÚ  — t          ¦   «         }t          ¦   «         }t          j        t          d¬¦  «        5  |                     |¬¦  «         ddd¦  «         n# 1 swxY w Y   |                     |d¬¦  «        }||u sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j	        du sJ ‚|j        d         j        j        j
        |k    sJ ‚t          ¦   «         }t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  |                     |d
¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     t          ¦   «         d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z2Test FTS index configuration and key restrictions.ú.FTS index can only be enabled on #document keyr˜   r8   Nr]   rv   TÚcustom_text_fieldrœ   r^   r›   )r   r   r�   rž   rŸ   rx   rn   r`   ra   rb   r5   r   )r    rr   Ú
fts_configrz   Úfts_config2s        r!   Ú&test_fts_index_config_and_restrictionsz4TestNewSchema.test_fts_index_config_and_restrictionsñ  sF  € å‘”ˆÝ#Ñ%Ô%ˆ
õ Œ]ÝÐNð
ñ 
ô 
ð 	3ð 	3ð ×Ò zÐÑ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð ×$Ò$¨J¸KÐ$ÑHÔHˆØ˜ÐÐÐÐð Œ{˜;Ô'Ô.Ð:Ð:Ð:ØŒ{˜;Ô'Ô.Ô8ÐDÐDÐDØŒ{˜;Ô'Ô.Ô8Ô@ÀDÐHÐHÐHÐHØŒ{˜;Ô'Ô.Ô8Ô?À:ÒMÐMÐMÐMõ %Ñ&Ô&ˆÝŒ]ÝÐNð
ñ 
ô 
ð 	Mð 	Mð ×Ò {Ð8KÐÑLÔLÐLð	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Mõ Œ]ÝÐOð
ñ 
ô 
ð 	Fð 	Fð ×Ò {¸ÐÑEÔEÐEð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fõ Œ]ÝÐNð
ñ 
ô 
ð 	Uð 	Uð ×ÒÕ'@Ñ'BÔ'BÈÐÑTÔTÐTð	Uð 	Uð 	Uñ 	Uô 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uøøøð 	Uð 	Uð 	Uð 	Uð 	Uð 	UsG   ¸AÁAÁ"AÄD?Ä?EÅEÅ%F	Æ	FÆFÆ/$G Ç G$Ç'G$c                 ó¬  — t          ¦   «         }t          ¦   «         }t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          ¦   «         }t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zHTest that #embedding and #document keys are blocked for all index types.r›   r˜   r]   rv   Nrœ   r^   )r   r   r�   rž   rŸ   rx   r   )r    rr   r’   r‘   s       r!   Ú-test_special_keys_blocked_for_all_index_typesz;TestNewSchema.test_special_keys_blocked_for_all_index_types  s³  € å‘”ˆõ 2Ñ3Ô3ˆÝŒ]ÝÐNð
ñ 
ô 
ð 	Gð 	Gð ×Ò }¸+ÐÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gõ Œ]ÝÐOð
ñ 
ô 
ð 	Hð 	Hð ×Ò }¸,ÐÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hõ 0Ñ1Ô1ˆÝŒ]ÝÐNð
ñ 
ô 
ð 	Gð 	Gð ×Ò }¸+ÐÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gõ Œ]ÝÐOð
ñ 
ô 
ð 	Hð 	Hð ×Ò }¸,ÐÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð 	Hð 	HsG   ¸AÁA Á#A ÂB&Â&B*Â-B*ÃC>Ã>DÄDÄ$E	Å	EÅEc                 óH  — t          ¦   «         }t          j        t          d¬¦  «        5  |                     d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z8Test that enabling all indexes for a key is not allowed.z.Cannot enable all index types for key 'my_key'r˜   Úmy_key©rw   Nz/Cannot disable all index types for key 'my_key')r   r�   rž   rŸ   rx   r‰   rq   s     r!   Ú&test_cannot_enable_all_indexes_for_keyz4TestNewSchema.test_cannot_enable_all_indexes_for_key7  s4  € å‘”ˆõ Œ]ÝÐNð
ñ 
ô 
ð 	.ð 	.ð ×Ò HÐÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.õ Œ]ÝÐOð
ñ 
ô 
ð 	.ð 	.ð ×Ò HÐÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s#   ªAÁAÁAÁ3BÂBÂBc                 ó²  — t          ¦   «         }t          ¦   «         }t          j        t          d¬¦  «        5  |                     |¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          ¦   «         }t          j        t          d¬¦  «        5  |                     |¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   |                     |d	¬¦  «         |j        d	         j        €J ‚|j        d	         j        j	        €J ‚|j        d	         j        j	        j
        d
u sJ ‚|j        d	         j        j	        j        |k    sJ ‚dS )zLTest that deleting vector index is not allowed and FTS delete is restricted.ú0Deleting vector index is not currently supportedr˜   r8   Nrš   rv   ú5Deleting FTS index is only supported on #document keyÚmy_textr]   F)r   r   r�   rž   rŸ   r‰   r   rn   r`   ra   rb   r5   ©r    rr   r    r·   s       r!   Ú&test_cannot_delete_vector_or_fts_indexz4TestNewSchema.test_cannot_delete_vector_or_fts_indexG  s  € å‘”ˆõ *Ñ+Ô+ˆÝŒ]ÝÐPð
ñ 
ô 
ð 	6ð 	6ð ×Ò }ÐÑ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6õ Œ]ÝÐPð
ñ 
ô 
ð 	Hð 	Hð ×Ò }¸,ÐÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hõ $Ñ%Ô%ˆ
ÝŒ]ÝÐUð
ñ 
ô 
ð 	3ð 	3ð ×Ò zÐÑ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3õ Œ]ÝÐUð
ñ 
ô 
ð 	Bð 	Bð ×Ò z°yÐÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	×Ò :°;ÐÑ?Ô?Ð?ØŒ{˜;Ô'Ô.Ð:Ð:Ð:ØŒ{˜;Ô'Ô.Ô8ÐDÐDÐDØŒ{˜;Ô'Ô.Ô8Ô@ÀEÐIÐIÐIÐIØŒ{˜;Ô'Ô.Ô8Ô?À:ÒMÐMÐMÐMÐMÐMsG   ¸AÁAÁ"AÂB%Â%B)Â,B)ÃC<Ã<D ÄD Ä"EÅE
ÅE
c                 ó  — t          ¦   «         }|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚t          ¦   «         }|                     |¬¦  «        }||u sJ ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        j        j        |k    sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚dS )z.Test disabling string inverted index globally.NTr8   Fr]   )	r   r_   r`   rc   rb   r   r‰   r5   rn   ©r    rr   r’   rz   s       r!   Ú+test_disable_string_inverted_index_globallyz9TestNewSchema.test_disable_string_inverted_index_globallyl  s(  € å‘”ˆð ŒÔ%Ð1Ð1Ð1ØŒÔ%Ô;ÐGÐGÐGØŒÔ%Ô;ÔCÀtÐKÐKÐKÐKõ 2Ñ3Ô3ˆØ×$Ò$¨MÐ$Ñ:Ô:ˆØ˜ÐÐÐÐð ŒÔ%Ô;ÐGÐGÐGØŒÔ%Ô;ÔCÀuÐLÐLÐLÐLØŒÔ%Ô;ÔBÀmÒSÐSÐSÐSð Œ{˜;Ô'Ô.Ð:Ð:Ð:ØŒ{˜;Ô'Ô.ÔDÐPÐPÐPàŒK˜Ô$Ô+ÔAÔIÈUÐRÐRÐRÐRÐRÐRr#   c                 óŽ  — t          ¦   «         }t          ¦   «         }|                     |d¬¦  «        }||u sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚|j        d         j        j        j        |k    sJ ‚|j        d         j        �J ‚|j        d         j	        �J ‚|j        d         j
        �J ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚dS )r‡   Úmy_text_fieldrv   NFTr]   r^   )r   r   r‰   rn   r`   rc   rb   r5   rd   rf   rh   r_   re   rÇ   s       r!   Ú)test_disable_string_inverted_index_on_keyz7TestNewSchema.test_disable_string_inverted_index_on_key†  s  € å‘”ˆõ 2Ñ3Ô3ˆØ×$Ò$¨M¸Ð$ÑOÔOˆØ˜ÐÐÐÐð  &¤+Ð-Ð-Ð-Ð-ØŒ{˜?Ô+Ô2Ð>Ð>Ð>ØŒ{˜?Ô+Ô2ÔHÐTÐTÐTàŒK˜Ô(Ô/ÔEÔMÐQVÐVÐVÐVÐVð ŒK˜Ô(Ô/ÔEÔLØòð ð ð ð
 Œ{˜?Ô+Ô6Ð>Ð>Ð>ØŒ{˜?Ô+Ô9ÐAÐAÐAØŒ{˜?Ô+Ô5Ð=Ð=Ð=ð ŒÔ%Ð1Ð1Ð1ØŒÔ%Ô;ÐGÐGÐGØŒÔ%Ô;ÔCÀtÐKÐKÐKÐKð Œ{˜;Ô'Ô.Ð:Ð:Ð:ØŒ{˜;Ô'Ô.ÔDÐPÐPÐPØŒ{˜;Ô'Ô.ÔDÔLÐPUÐUÐUÐUÐUØŒ{˜<Ô(Ô3Ð?Ð?Ð?ØŒ{˜<Ô(Ô3Ô@ÐLÐLÐLØŒ{˜<Ô(Ô3Ô@ÔHÈDÐPÐPÐPÐPÐPÐPr#   c                 óº  — t          ¦   «         }|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚t          ¦   «         }|                     |¬¦  «        }||u sJ ‚|j        j        j        j        du sJ ‚|j        j        j        j        |k    sJ ‚t          ¦   «         }|                     |d¬¦  «        }||u sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚|j        d         j        j        j        |k    sJ ‚|j        d         j	        �J ‚|j        d         j
        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j	        €J ‚|j        d         j
        €J ‚dS )	zATest disabling int inverted index globally and on a specific key.NTr8   FÚ	age_fieldrv   r]   r^   )r   r_   rh   ri   rb   r   r‰   r5   rn   r`   rd   rf   rj   rl   )r    rr   Ú
int_configrz   Úint_config2s        r!   Útest_disable_int_inverted_indexz-TestNewSchema.test_disable_int_inverted_index­  s  € å‘”ˆð ŒÔ(Ð4Ð4Ð4ØŒÔ(Ô;ÐGÐGÐGØŒÔ(Ô;ÔCÀtÐKÐKÐKÐKõ ,Ñ-Ô-ˆ
Ø×$Ò$¨JÐ$Ñ7Ô7ˆØ˜ÐÐÐÐð ŒÔ(Ô;ÔCÀuÐLÐLÐLÐLØŒÔ(Ô;ÔBÀjÒPÐPÐPÐPõ -Ñ.Ô.ˆØ×$Ò$¨K¸[Ð$ÑIÔIˆØ˜ÐÐÐÐð ˜fœkÐ)Ð)Ð)Ð)ØŒ{˜;Ô'Ô1Ð=Ð=Ð=ØŒ{˜;Ô'Ô1ÔDÐPÐPÐPØŒ{˜;Ô'Ô1ÔDÔLÐPUÐUÐUÐUÐUàŒK˜Ô$Ô.ÔAÔHÈKÒWÐWÐWÐWð Œ{˜;Ô'Ô.Ð6Ð6Ð6ØŒ{˜;Ô'Ô2Ð:Ð:Ð:ØŒ{˜;Ô'Ô5Ð=Ð=Ð=ØŒ{˜;Ô'Ô3Ð;Ð;Ð;ØŒ{˜;Ô'Ô/Ð7Ð7Ð7ð Œ{˜;Ô'Ô.Ð:Ð:Ð:ØŒ{˜<Ô(Ô3Ð?Ð?Ð?Ð?Ð?r#   c                 óÒ  — t          ¦   «         }|                     ¦   «         }d|v sJ ‚d|v sJ ‚t          |d         t          ¦  «        sJ ‚t          |d         t          ¦  «        sJ ‚|d         }d|v sJ ‚d|d         v sJ ‚|d         d         d         du sJ ‚|d         d         d         i k    sJ ‚d|d         v sJ ‚|d         d         d         d	u sJ ‚|d         d         d         i k    sJ ‚d
|v sJ ‚d|d
         v sJ ‚|d
         d         d         du sJ ‚|d
         d         d         }d|v sJ ‚|d         dk    sJ ‚d|v sJ ‚|d         d         dk    sJ ‚|d         d         dk    sJ ‚|d         d         i k    sJ ‚d|v sJ ‚d|d         v sJ ‚|d         d         d         du sJ ‚|d         d         d         }d|v sJ ‚|d         ddik    sJ ‚d|v sJ ‚d|d         v sJ ‚|d         d         d         d	u sJ ‚|d         d         d         i k    sJ ‚d|v sJ ‚d|d         v sJ ‚|d         d         d         d	u sJ ‚|d         d         d         i k    sJ ‚d|v sJ ‚d|d         v sJ ‚|d         d         d         d	u sJ ‚|d         d         d         i k    sJ ‚|d         }d|v sJ ‚d|d         v sJ ‚d|d         d         v sJ ‚|d         d         d         d         d	u sJ ‚|d         d         d         d         i k    sJ ‚d|d         d         v sJ ‚|d         d         d         d         du sJ ‚|d         d         d         d         i k    sJ ‚d|v sJ ‚d
|d         v sJ ‚d|d         d
         v sJ ‚|d         d
         d         d         d	u sJ ‚|d         d
         d         d         }d|v sJ ‚|d         dk    sJ ‚d|v sJ ‚|d         dk    sJ ‚d|v sJ ‚|d         d         dk    sJ ‚|d         d         dk    sJ ‚|d         d         i k    sJ ‚t          j        |¦  «        }|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        j        j        |j        j        j        j        k    sJ ‚|j        j        j	        €J ‚|j        j        j	        j        d	u sJ ‚|j        j        j	        j        |j        j        j	        j        k    sJ ‚|j        j
        €J ‚|j        j
        j        €J ‚|j        j
        j        j        du sJ ‚|j        j
        j        j        |j        j
        j        j        k    sJ ‚|j        j
        j        j        j        dk    sJ ‚|j        j
        j        j        j        	 €J ‚|j        j
        j        j        j                             ¦   «         dk    sJ ‚|j        j
        j        j        j                             ¦   «         dk    sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        j        j        |j        j        j        j        k    sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        d	u sJ ‚|j        j        j        j        |j        j        j        j        k    sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        d	u sJ ‚|j        j        j        j        |j        j        j        j        k    sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        d	u sJ ‚|j        j        j        j        |j        j        j        j        k    sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        d	u sJ ‚|j        d         j        j        j        |j        d         j        j        j        k    sJ ‚|j        d         j        j	        €J ‚|j        d         j        j	        j        du sJ ‚|j        d         j        j	        j        |j        d         j        j	        j        k    sJ ‚d|j        v sJ ‚|j        d         j
        €J ‚|j        d         j
        j        €J ‚|j        d         j
        j        j        d	u sJ ‚|j        d         j
        j        j        |j        d         j
        j        j        k    sJ ‚|j        d         j
        j        j        j        dk    sJ ‚|j        d         j
        j        j        j        dk    sJ ‚|j        d         j
        j        j        j        dk    sJ ‚|j        d         j
        j        j        j        	 €J ‚|j        d         j
        j        j        j                             ¦   «         dk    sJ ‚|j        d         j
        j        j        j                             ¦   «         dk    sJ ‚dS ) z;Test serialization and deserialization of a default Schema.r_   rn   r`   ra   rb   Fr5   rc   Trd   re   r–   rV   r�   ÚtypeÚknownr   Údefaultrf   rg   ÚunknownÚintri   Úfloatrk   Úboolrm   r]   r^   rp   N)r   Úserialize_to_jsonÚ
isinstanceÚdictÚdeserialize_from_jsonr_   r`   ra   rb   rc   rd   re   r5   r–   r�   r   rf   rg   rh   ri   rj   rk   rl   rm   rn   rp   )	r    ÚoriginalÚ	json_datar_   r    Úsparse_vector_configrn   Úembedding_vector_configÚdeserializeds	            r!   Ú)test_serialize_deserialize_default_schemaz7TestNewSchema.test_serialize_deserialize_default_schemaØ  sY  € õ ‘8”8ˆð ×.Ò.Ñ0Ô0ˆ	ð ˜YÐ&Ð&Ð&Ð&Ø˜Ð"Ð"Ð"Ð"Ý˜) JÔ/µÑ6Ô6Ð6Ð6Ð6Ý˜) FÔ+­TÑ2Ô2Ð2Ð2Ð2ð ˜ZÔ(ˆð ˜8Ð#Ð#Ð#Ð#Ø˜h xÔ0Ð0Ð0Ð0Ð0Ø˜Ô! +Ô.¨yÔ9¸UÐBÐBÐBÐBØ˜Ô! +Ô.¨xÔ8¸BÒ>Ð>Ð>Ð>Ø&¨(°8Ô*<Ð<Ð<Ð<Ð<Ø˜Ô!Ð"9Ô:¸9ÔEÈÐMÐMÐMÐMØ˜Ô!Ð"9Ô:¸8ÔDÈÒJÐJÐJÐJð ˜xÐ'Ð'Ð'Ð'Ø ¨,Ô!7Ð7Ð7Ð7Ð7Ø˜Ô% nÔ5°iÔ@ÀEÐIÐIÐIÐIØ  Ô.¨~Ô>¸xÔHˆØ˜-Ð'Ð'Ð'Ð'Ø˜WÔ%¨Ò-Ð-Ð-Ð-Ø# }Ð4Ð4Ð4Ð4ØÐ1Ô2°6Ô:¸gÒEÐEÐEÐEØÐ1Ô2°6Ô:¸iÒGÐGÐGÐGØÐ1Ô2°8Ô<ÀÒBÐBÐBÐBð  (Ð*Ð*Ð*Ð*Ø$¨°Ô(AÐAÐAÐAÐAØ˜Ô(Ð)>Ô?À	ÔJÈeÐSÐSÐSÐSØ'¨Ô8Ð9NÔOØô 
Ðð $Ð';Ð;Ð;Ð;Ð;Ø#Ð$8Ô9¸fÀiÐ=PÒPÐPÐPÐPð ˜Ð Ð Ð Ð Ø# x°¤Ð6Ð6Ð6Ð6Ø˜ŒÐ3Ô4°YÔ?À4ÐGÐGÐGÐGØ˜ŒÐ3Ô4°XÔ>À"ÒDÐDÐDÐDð ˜(Ð"Ð"Ð"Ð"Ø%¨°'Ô):Ð:Ð:Ð:Ð:Ø˜Ô Ð!7Ô8¸ÔCÀtÐKÐKÐKÐKØ˜Ô Ð!7Ô8¸ÔBÀbÒHÐHÐHÐHð ˜Ð!Ð!Ð!Ð!Ø$¨°Ô(8Ð8Ð8Ð8Ð8Ø˜ÔÐ 5Ô6°yÔAÀTÐIÐIÐIÐIØ˜ÔÐ 5Ô6°xÔ@ÀBÒFÐFÐFÐFð ˜Ô ˆð ˜dÐ"Ð"Ð"Ð"Ø˜4 Ô,Ð,Ð,Ð,Ð,Ø˜d ;Ô/°Ô9Ð9Ð9Ð9Ð9Ø�KÔ  Ô*¨;Ô7¸	ÔBÀdÐJÐJÐJÐJØ�KÔ  Ô*¨;Ô7¸ÔAÀRÒGÐGÐGÐGØ&¨$¨{Ô*;¸HÔ*EÐEÐEÐEÐEØ�KÔ  Ô*Ð+BÔCÀIÔNÐRWÐWÐWÐWÐWØ�KÔ  Ô*Ð+BÔCÀHÔMÐQSÒSÐSÐSÐSð ˜tÐ#Ð#Ð#Ð#Ø˜t LÔ1Ð1Ð1Ð1Ð1Ø  lÔ!3°LÔ!AÐAÐAÐAÐAØ�LÔ! ,Ô/°Ô?À	ÔJÈdÐRÐRÐRÐRØ"& |Ô"4°\Ô"BÀ>Ô"RØô#
Ðð Ð1Ð1Ð1Ð1Ð1Ø& wÔ/°4Ò7Ð7Ð7Ð7ØÐ6Ð6Ð6Ð6Ð6Ø& |Ô4¸ÒCÐCÐCÐCØ#Ð'>Ð>Ð>Ð>Ð>Ø&Ð';Ô<¸VÔDÈÒOÐOÐOÐOØ&Ð';Ô<¸VÔDÈ	ÒQÐQÐQÐQØ&Ð';Ô<¸XÔFÈ"ÒLÐLÐLÐLõ Ô3°IÑ>Ô>ˆð Ô$Ô+Ð7Ð7Ð7ØÔ$Ô+Ô5ÐAÐAÐAØÔ$Ô+Ô5Ô=ÀÐFÐFÐFÐFàÔ!Ô(Ô2Ô:ØÔ Ô'Ô1Ô9ò:ð :ð :ð :ð Ô$Ô+ÔAÐMÐMÐMØÔ$Ô+ÔAÔIÈTÐQÐQÐQÐQàÔ!Ô(Ô>ÔFØÔ Ô'Ô=ÔEòFð Fð Fð Fð
 Ô$Ô/Ð;Ð;Ð;ØÔ$Ô/Ô<ÐHÐHÐHØÔ$Ô/Ô<ÔDÈÐMÐMÐMÐMàÔ!Ô,Ô9ÔAØÔ Ô+Ô8Ô@òAð Að Að Að Ô$Ô/Ô<ÔCÔIÈTÒQÐQÐQÐQð Ô!Ô,Ô9Ô@ÔSØðð ð ð Ô!Ô,Ô9Ô@ÔS×XÒXÑZÔZØòð ð ð ð ÔÔ(Ô5Ô<ÔO×TÒTÑVÔVØòð ð ð ð
 Ô$Ô2Ð>Ð>Ð>ØÔ$Ô2ÔFÐRÐRÐRØÔ$Ô2ÔFÔNÐRWÐWÐWÐWÐWàÔ!Ô/ÔCÔKØÔ Ô.ÔBÔJòKð Kð Kð Kð
 Ô$Ô.Ð:Ð:Ð:ØÔ$Ô.ÔAÐMÐMÐMØÔ$Ô.ÔAÔIÈTÐQÐQÐQÐQàÔ!Ô+Ô>ÔFØÔ Ô*Ô=ÔEòFð Fð Fð Fð
 Ô$Ô0Ð<Ð<Ð<ØÔ$Ô0ÔEÐQÐQÐQØÔ$Ô0ÔEÔMÐQUÐUÐUÐUÐUàÔ!Ô-ÔBÔJØÔ Ô,ÔAÔIòJð Jð Jð Jð
 Ô$Ô,Ð8Ð8Ð8ØÔ$Ô,Ô@ÐLÐLÐLØÔ$Ô,Ô@ÔHÈDÐPÐPÐPÐPàÔ!Ô)Ô=ÔEØÔ Ô(Ô<ÔDòEð Eð Eð Eð
 ˜lÔ/Ð/Ð/Ð/Ð/ØÔ  Ô-Ô4Ð@Ð@Ð@ØÔ  Ô-Ô4Ô>ÐJÐJÐJØÔ  Ô-Ô4Ô>ÔFÈ$ÐNÐNÐNÐNàÔ˜kÔ*Ô1Ô;ÔCØŒ}˜[Ô)Ô0Ô:ÔBòCð Cð Cð Cð Ô  Ô-Ô4ÔJÐVÐVÐVàÔ˜kÔ*Ô1ÔGÔOÐSXÐXÐXÐXÐXð Ô˜kÔ*Ô1ÔGÔOØŒ}˜[Ô)Ô0ÔFÔNòOð Oð Oð Oð
 ˜|Ô0Ð0Ð0Ð0Ð0ØÔ  Ô.Ô9ÐEÐEÐEØÔ  Ô.Ô9ÔFÐRÐRÐRØÔ  Ô.Ô9ÔFÔNÐRVÐVÐVÐVÐVàÔ˜lÔ+Ô6ÔCÔKØŒ}˜\Ô*Ô5ÔBÔJòKð Kð Kð Kð
 Ô˜lÔ+Ô6ÔCÔJÔUØòð ð ð ð ŒM˜,Ô'Ô2Ô?ÔFÔQØòð ð ð ð
 Ô˜lÔ+Ô6ÔCÔJÔPÐTXÒXÐXÐXÐXð ÔØôäœ¤fÔ-?Øðð ð ð ÔØôäœ¤fÔ-?ÇÂÁÄØòð ð ð ð ŒMØôäœ¤fÔ-?ÇÂÁÄØòð ð ð ð ð r#   c                 óì  — t          ¦   «         }t          dd¬¦  «        }|                     |¬¦  «         |                     ¦   «         }|d         }d|v sJ ‚d|d         v sJ ‚|d         d         }|d         d	u sJ ‚|d
         d         dk    sJ ‚|d
         d         d         dk    sJ ‚|d         }d|v sJ ‚|d         d         d         }|d         du sJ ‚|d
         d         dk    sJ ‚|d
         d         dk    sJ ‚|d
         d         d         dk    sJ ‚t          j        |¦  «        }|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        d	u sJ ‚|j        j        j        j	        j
        dk    sJ ‚|j        j        j        j	        j        	 �J ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        du sJ ‚|j        d         j        j        j	        j
        dk    sJ ‚|j        d         j        j        j	        j        dk    sJ ‚|j        d         j        j        j	        j        	 �J ‚dS )z^Test serialization/deserialization of Schema with vector config where embedding_function=None.rS   N)r–   r�   r8   r_   rd   re   rb   Fr5   r–   r�   rÒ   Úlegacyrn   r^   Trp   r]   )r   r   rx   rÙ   rÜ   r_   rd   re   rb   r5   r–   r�   rn   rp   )	r    rÝ   r    rÞ   r_   Úvector_jsonrn   Úembedding_vector_jsonrá   s	            r!   Ú3test_serialize_deserialize_with_vector_config_no_efzATestNewSchema.test_serialize_deserialize_with_vector_config_no_efÄ  s#  € õ ‘8”8ˆÝ)ØØ#ð
ñ 
ô 
ˆð 	×Ò ]ÐÑ3Ô3Ð3ð ×.Ò.Ñ0Ô0ˆ	ð ˜ZÔ(ˆØ˜xÐ'Ð'Ð'Ð'Ø ¨,Ô!7Ð7Ð7Ð7Ð7Ø˜|Ô,¨^Ô<ˆØ˜9Ô%¨Ð.Ð.Ð.Ð.Ø˜8Ô$ WÔ-°Ò9Ð9Ð9Ð9à˜8Ô$Ð%9Ô:¸6ÔBÀhÒNÐNÐNÐNð ˜Ô ˆØ˜tÐ#Ð#Ð#Ð#Ø $ \Ô 2°<Ô @ÀÔ PÐØ$ YÔ/°4Ð7Ð7Ð7Ð7à! (Ô+¨GÔ4¸Ò@Ð@Ð@Ð@à$ XÔ.¨|Ô<ÀÒKÐKÐKÐKà$ XÔ.Ð/CÔDÀVÔLÐPXÒXÐXÐXÐXõ Ô3°IÑ>Ô>ˆð Ô$Ô/Ð;Ð;Ð;ØÔ$Ô/Ô<ÐHÐHÐHØÔ$Ô/Ô<ÔDÈÐMÐMÐMÐMàÔ!Ô,Ô9Ô@ÔFÈ(ÒRÐRÐRÐRð Ô!Ô,Ô9Ô@ÔSØðð ð ð
 ˜|Ô0Ð0Ð0Ð0Ð0ØÔ  Ô.Ô9ÐEÐEÐEØÔ  Ô.Ô9ÔFÐRÐRÐRØÔ  Ô.Ô9ÔFÔNÐRVÐVÐVÐVÐVàÔ˜lÔ+Ô6ÔCÔJÔPØòð ð ð ð Ô˜lÔ+Ô6ÔCÔJÔUØòð ð ð ð
 ÔØôäœ¤fÔ-?Øðð ð ð ð r#   c                 ó  — ddl m} t          |d<   	 t          ¦   «         }t          d¬¦  «        }t	          ddd¬	¦  «        }t          |d
|¬¦  «        }|                     |¬¦  «         |                     ¦   «         }|d         }d|v sJ ‚d|d         v sJ ‚|d         d         }|d         du sJ ‚|d         d         d
k    sJ ‚|d         d         d         dk    sJ ‚|d         d         d         dk    sJ ‚|d         d         d         d         dk    sJ ‚d|d         v sJ ‚|d         d         d         dk    sJ ‚|d         d         d         dk    sJ ‚|d         d         d         dk    sJ ‚|d         }	d|	v sJ ‚|	d         d         d         }
|
d         du sJ ‚|
d         d         d
k    sJ ‚|
d         d          d!k    sJ ‚|
d         d         d         dk    sJ ‚|
d         d         d         dk    sJ ‚|
d         d         d         d         dk    sJ ‚d|
d         v sJ ‚|
d         d         d         dk    sJ ‚|
d         d         d         dk    sJ ‚|
d         d         d         dk    sJ ‚t          j        |¦  «        }|j	        j
        €J ‚|j	        j
        j        €J ‚|j	        j
        j        j        du sJ ‚|j	        j
        j        j        j        d
k    sJ ‚|j	        j
        j        j        j        	 €J ‚|j	        j
        j        j        j                             ¦   «         dk    sJ ‚|j	        j
        j        j        j                             ¦   «         }|d         dk    sJ ‚|j	        j
        j        j        j        €J ‚|j	        j
        j        j        j        j        dk    sJ ‚|j	        j
        j        j        j        j        dk    sJ ‚|j	        j
        j        j        j        j        dk    sJ ‚d|j        v sJ ‚|j        d         j
        €J ‚|j        d         j
        j        €J ‚|j        d         j
        j        j        du sJ ‚|j        d         j
        j        j        j        d
k    sJ ‚|j        d         j
        j        j        j        d!k    sJ ‚|j        d         j
        j        j        j        	 €J ‚|j        d         j
        j        j        j                             ¦   «         dk    sJ ‚|j        d         j
        j        j        j                             ¦   «         }|d         dk    sJ ‚|j        d         j
        j        j        j        	 €J ‚|j        d         j
        j        j        j        j        dk    sJ ‚|j        d         j
        j        j        j        j        dk    sJ ‚|j        d         j
        j        j        j        j        dk    sJ ‚	 d|v r|d= d"S d"S # d|v r|d= w xY w)#zLTest serialization/deserialization of Schema with custom embedding function.r   ©Úknown_embedding_functionsrO   Úcustom_model_v3r¦   é   é0   é€   rª   rW   ©r�   r–   r®   r8   r_   rd   re   rb   Fr5   r–   r�   rÒ   rÓ   r   rC   r®   r«   r¬   r­   rn   r^   Trp   r]   N)Ú"chromadb.utils.embedding_functionsrê   rA   r   r   r   rx   rÙ   rÜ   r_   rd   re   rb   r5   r–   r�   r   r4   r®   r«   r¬   r­   rn   rp   )r    rê   rÝ   Ú	custom_efr°   r    rÞ   r_   rå   rn   ræ   rá   Ú	ef_configÚef_config_embeddings                 r!   Ú)test_serialize_deserialize_with_custom_efz7TestNewSchema.test_serialize_deserialize_with_custom_ef  sº  € ð 	QÐPÐPÐPÐPÐPå6KÐ!Ð"2Ñ3ðk	@å‘x”xˆHÝ-Ð9JÐKÑKÔKˆIÝ)Ø #°2Àðñ ô ˆKõ .Ø#,ØØ ðñ ô ˆMð
 ×!Ò!¨Ð!Ñ7Ô7Ð7ð !×2Ò2Ñ4Ô4ˆIð ! Ô,ˆHØ 8Ð+Ð+Ð+Ð+Ø! X¨lÔ%;Ð;Ð;Ð;Ð;Ø" <Ô0°Ô@ˆKØ˜yÔ)¨UÐ2Ð2Ð2Ð2Ø˜xÔ(¨Ô1°TÒ9Ð9Ð9Ð9à˜xÔ(Ð)=Ô>¸vÔFÈ'ÒQÐQÐQÐQà˜HÔ%Ð&:Ô;¸FÔCÐGWÒWÐWÐWÐWð ˜HÔ%Ð&:Ô;¸HÔEÀlÔSØ$ò%ð %ð %ð %ð ˜[¨Ô2Ð2Ð2Ð2Ð2Ø˜xÔ(¨Ô0Ð1BÔCÀsÒJÐJÐJÐJØ˜xÔ(¨Ô0°ÔAÀRÒGÐGÐGÐGØ˜xÔ(¨Ô0°Ô=ÀÒDÐDÐDÐDð ˜VÔ$ˆDØ 4Ð'Ð'Ð'Ð'Ø$(¨Ô$6°|Ô$DÀ^Ô$TÐ!à% iÔ0°DÐ8Ð8Ð8Ð8ð & hÔ/°Ô8¸DÒ@Ð@Ð@Ð@ð & hÔ/°Ô=ÀÒLÐLÐLÐLð & hÔ/Ð0DÔEÀfÔMÐQXÒXÐXÐXÐXð & hÔ/Ð0DÔEÀfÔMØ#ò$ð $ð $ð $ð & hÔ/Ð0DÔEÀhÔOØ ôð %ò%ð %ð %ð %ð Ð2°8Ô<Ð<Ð<Ð<Ð<Ø(¨Ô2°6Ô:Ð;LÔMÐQTÒTÐTÐTÐTØ(¨Ô2°6Ô:¸?ÔKÈrÒQÐQÐQÐQØ(¨Ô2°6Ô:¸;ÔGÈ3ÒNÐNÐNÐNõ "Ô7¸	ÑBÔBˆLð  Ô(Ô3Ð?Ð?Ð?ØÔ(Ô3Ô@ÐLÐLÐLØÔ(Ô3Ô@ÔHÈEÐQÐQÐQÐQàÔ%Ô0Ô=ÔDÔJÈdÒRÐRÐRÐRð Ô%Ô0Ô=ÔDÔWØðð ð ð Ô%Ô0Ô=ÔDÔW×\Ò\Ñ^Ô^Ø#ò$ð $ð $ð $ð %Ô-Ô8ÔEÔLÔ_×jÒjÑlÔlˆIØ˜\Ô*Ð.?Ò?Ð?Ð?Ð?àÔ(Ô3Ô@ÔGÔLÐXÐXÐXàÔ%Ô0Ô=ÔDÔIÔYØòð ð ð ð Ô%Ô0Ô=ÔDÔIÔWØòð ð ð ð Ô%Ô0Ô=ÔDÔIÔSØòð ð ð ð
   <Ô#4Ð4Ð4Ð4Ð4ØÔ$ \Ô2Ô=ÐIÐIÐIØÔ$ \Ô2Ô=ÔJÐVÐVÐVàÔ! ,Ô/Ô:ÔGÔOÐSWÐWÐWÐWÐWð Ô! ,Ô/Ô:ÔGÔNÔTØòð ð ð ð Ô!Ø ôäœ\¬&´Øòð ð ð ð Ô!Ø ôäœ\¬&Ô1CØðð ð ð Ô!Ø ôäœ\¬&Ô1CÇDÂDÁFÄFØ#ò$ð $ð $ð $ð #/Ô"3Øô#äœ¤fÔ-?Ç
Â
ÁÄð  ð ' |Ô4Ð8IÒIÐIÐIÐIð Ô! ,Ô/Ô:ÔGÔNÔSØðð ð ð Ô!Ø ôäœ\¬&´´oØòð ð ð ð Ô!Ø ôäœ\¬&´´mØòð ð ð ð Ô!Ø ôäœ\¬&´´iØòð ð ð ð ð  Ð#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?ð =Ð<øÐÐ#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?Ð?Ð?s   ’WW; ×;	Xc                 ó  — ddl m} t          |d<   	 t          ¦   «         }t          d¬¦  «        }t	          dddd	¬
¦  «        }t          |d|¬¦  «        }|                     |¬¦  «         |                     ¦   «         }|d         }d|v sJ ‚d|d         v sJ ‚|d         d         }|d         du sJ ‚|d         d         dk    sJ ‚|d         d         d         dk    sJ ‚|d         d         d         dk    sJ ‚|d         d         d         d         dk    sJ ‚d|d         v sJ ‚|d         d         d         dk    sJ ‚|d         d         d         dk    sJ ‚|d         d         d         dk    sJ ‚|d         d         d         d	k    sJ ‚|d                              d¦  «        �J ‚|d!         }	d"|	v sJ ‚|	d"         d         d         }
|
d         d#u sJ ‚|
d         d         dk    sJ ‚|
d         d$         d%k    sJ ‚|
d         d         d         dk    sJ ‚|
d         d         d         dk    sJ ‚|
d         d         d         d         dk    sJ ‚d|
d         v sJ ‚|
d         d         d         dk    sJ ‚|
d         d         d         dk    sJ ‚|
d         d         d         dk    sJ ‚|
d         d         d         d	k    sJ ‚|
d                              d¦  «        �J ‚t          j	        |¦  «        }|j
        j        €J ‚|j
        j        j        €J ‚|j
        j        j        j        du sJ ‚|j
        j        j        j        j        dk    sJ ‚|j
        j        j        j        j        	 €J ‚|j
        j        j        j        j                             ¦   «         dk    sJ ‚|j
        j        j        j        j                             ¦   «         }|d         dk    sJ ‚|j
        j        j        j        j        €J ‚|j
        j        j        j        j        j        dk    sJ ‚|j
        j        j        j        j        j        dk    sJ ‚|j
        j        j        j        j        j        dk    sJ ‚|j
        j        j        j        j        j        d	k    sJ ‚|j
        j        j        j        j        �J ‚d"|j        v sJ ‚|j        d"         j        €J ‚|j        d"         j        j        €J ‚|j        d"         j        j        j        d#u sJ ‚|j        d"         j        j        j        j        dk    sJ ‚|j        d"         j        j        j        j        d%k    sJ ‚|j        d"         j        j        j        j        	 €J ‚|j        d"         j        j        j        j                             ¦   «         dk    sJ ‚|j        d"         j        j        j        j                             ¦   «         }|d         dk    sJ ‚|j        d"         j        j        j        j        	 €J ‚|j        d"         j        j        j        j        j        dk    sJ ‚|j        d"         j        j        j        j        j        dk    sJ ‚|j        d"         j        j        j        j        j        dk    sJ ‚|j        d"         j        j        j        j        j        d	k    sJ ‚|j        d"         j        j        j        j        	 �J ‚	 d|v r|d= d S d S # d|v r|d= w xY w)&zETest serialization/deserialization of Schema with SPANN index config.r   ré   rO   Úspann_modelr¦   r©   é2   r§   é–   )Úsearch_nprobeÚwrite_nprober«   r­   rS   )r�   r–   Úspannr8   r_   rd   re   rb   Fr5   r–   r�   rÒ   rÓ   r   rC   rû   rù   rú   r«   r­   r®   Nrn   r^   Trp   r]   )rð   rê   rA   r   r   r   rx   rÙ   r7   rÜ   r_   rd   re   rb   r5   r–   r�   r   r4   rû   rù   rú   r«   r­   r®   rn   rp   )r    rê   rÝ   rñ   Úspann_configr    rÞ   r_   rå   rn   ræ   rá   rò   ró   s                 r!   Ú,test_serialize_deserialize_with_spann_configz:TestNewSchema.test_serialize_deserialize_with_spann_configÁ  sã  € ð 	QÐPÐPÐPÐPÐPå6KÐ!Ð"2Ñ3ðB	@å‘x”xˆHÝ-¸ÐGÑGÔGˆIÝ+Ø!°ÀCÐSVðñ ô ˆLõ .Ø#,°HÀLðñ ô ˆMð ×!Ò!¨Ð!Ñ7Ô7Ð7ð !×2Ò2Ñ4Ô4ˆIð ! Ô,ˆHØ 8Ð+Ð+Ð+Ð+Ø! X¨lÔ%;Ð;Ð;Ð;Ð;Ø" <Ô0°Ô@ˆKØ˜yÔ)¨UÐ2Ð2Ð2Ð2Ø˜xÔ(¨Ô1°XÒ=Ð=Ð=Ð=à˜xÔ(Ð)=Ô>¸vÔFÈ'ÒQÐQÐQÐQà˜HÔ%Ð&:Ô;¸FÔCÐGWÒWÐWÐWÐWð ˜HÔ%Ð&:Ô;¸HÔEÀlÔSØ ò!ð !ð !ð !ð ˜k¨(Ô3Ð3Ð3Ð3Ð3Ø˜xÔ(¨Ô1°/ÔBÀcÒIÐIÐIÐIØ˜xÔ(¨Ô1°.ÔAÀRÒGÐGÐGÐGØ˜xÔ(¨Ô1Ð2CÔDÈÒKÐKÐKÐKØ˜xÔ(¨Ô1°+Ô>À#ÒEÐEÐEÐEà˜xÔ(×,Ò,¨VÑ4Ô4Ð<Ð<Ð<ð ˜VÔ$ˆDØ 4Ð'Ð'Ð'Ð'Ø$(¨Ô$6°|Ô$DÀ^Ô$TÐ!à% iÔ0°DÐ8Ð8Ð8Ð8ð & hÔ/°Ô8¸HÒDÐDÐDÐDð & hÔ/°Ô=ÀÒLÐLÐLÐLð & hÔ/Ð0DÔEÀfÔMÐQXÒXÐXÐXÐXð & hÔ/Ð0DÔEÀfÔMØ#ò$ð $ð $ð $ð & hÔ/Ð0DÔEÀhÔOØ ôð !ò!ð !ð !ð !ð Ð3°HÔ=Ð=Ð=Ð=Ð=Ø(¨Ô2°7Ô;¸OÔLÐPSÒSÐSÐSÐSØ(¨Ô2°7Ô;¸NÔKÈrÒQÐQÐQÐQØ(¨Ô2°7Ô;Ð<MÔNÐRUÒUÐUÐUÐUØ(¨Ô2°7Ô;¸KÔHÈCÒOÐOÐOÐOà(¨Ô2×6Ò6°vÑ>Ô>ÐFÐFÐFõ "Ô7¸	ÑBÔBˆLð  Ô(Ô3Ð?Ð?Ð?ØÔ(Ô3Ô@ÐLÐLÐLØÔ(Ô3Ô@ÔHÈEÐQÐQÐQÐQàÔ%Ô0Ô=ÔDÔJÈhÒVÐVÐVÐVð Ô%Ô0Ô=ÔDÔWØðð ð ð Ô%Ô0Ô=ÔDÔW×\Ò\Ñ^Ô^Ø#ò$ð $ð $ð $ð %Ô-Ô8ÔEÔLÔ_×jÒjÑlÔlˆIØ˜\Ô*¨mÒ;Ð;Ð;Ð;ð Ô%Ô0Ô=ÔDÔJÐVÐVÐVð Ô%Ô0Ô=ÔDÔJÔXØòð ð ð ð Ô%Ô0Ô=ÔDÔJÔWØòð ð ð ð Ô%Ô0Ô=ÔDÔJÔZØòð ð ð ð Ô%Ô0Ô=ÔDÔJÔTØòð ð ð ð  Ô(Ô3Ô@ÔGÔLÐTÐTÐTð   <Ô#4Ð4Ð4Ð4Ð4ØÔ$ \Ô2Ô=ÐIÐIÐIØÔ$ \Ô2Ô=ÔJÐVÐVÐVàÔ! ,Ô/Ô:ÔGÔOÐSWÐWÐWÐWÐWð Ô! ,Ô/Ô:ÔGÔNÔTØòð ð ð ð Ô!Ø ôäœ\¬&´Øòð ð ð ð Ô!Ø ôäœ\¬&Ô1CØðð ð ð Ô!Ø ôäœ\¬&Ô1CÇDÂDÁFÄFØ#ò$ð $ð $ð $ð #/Ô"3Øô#äœ¤fÔ-?Ç
Â
ÁÄð  ð ' |Ô4¸ÒEÐEÐEÐEð Ô! ,Ô/Ô:ÔGÔNÔTØðð ð ð Ô!Ø ôäœ\¬&´´}Øòð ð ð ð Ô!Ø ôäœ\¬&´´|Øòð ð ð ð Ô!Ø ôäœ\¬&´´Øòð ð ð ð Ô!Ø ôäœ\¬&´´yØòð ð ð ð Ô! ,Ô/Ô:ÔGÔNÔSØðð ð ð ð
  Ð#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?ð =Ð<øÐÐ#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?Ð?Ð?s   ’[[= Û=	\c                 ó–  — ddl m} t          |d<   t          |d<   	 t	          ¦   «         }t          d¬¦  «        }t          dd¬	¦  «        }t          |d
|¬¦  «        }|                     |¬¦  «         t          d¬¦  «        }t          |d¬¦  «        }|                     |d¬¦  «         t          ¦   «         }| 
                    |d¬¦  «         t          ¦   «         }	| 
                    |	d¬¦  «         t          ¦   «         }
| 
                    |
d¬¦  «         |                     ¦   «         }|d         }|d         }|d         d         d         d         d
k    sJ ‚|d         d         d         d         d         dk    sJ ‚|d         d         d         d         d         dk    sJ ‚d|v sJ ‚d|v sJ ‚d|v sJ ‚d|v sJ ‚d|v sJ ‚d |v sJ ‚|d         }d!|v sJ ‚|d!         d"         d#         d$u sJ ‚|d!         d"         d         d%         dk    sJ ‚|d!         d"         d         d&         d'         d(k    sJ ‚|d!         d"         d         d&         d)         dk    sJ ‚|d!         d"         d         d&         d         d)         dk    sJ ‚d*|vsJ ‚d|vsJ ‚d+|vsJ ‚d,|vsJ ‚d-|vsJ ‚|d         }d*|v sJ ‚|d*         d.         d#         d/u sJ ‚|d*         d.         d         i k    sJ ‚d0|d*         vsJ ‚d!|vsJ ‚d|vsJ ‚d+|vsJ ‚d,|vsJ ‚d-|vsJ ‚|d         }d+|v sJ ‚|d+         d1         d#         d/u sJ ‚|d+         d1         d         i k    sJ ‚d*|vsJ ‚d!|vsJ ‚d|vsJ ‚d,|vsJ ‚d-|vsJ ‚|d         }d,|v sJ ‚|d,         d2         d#         d/u sJ ‚|d,         d2         d         i k    sJ ‚d*|vsJ ‚d!|vsJ ‚d|vsJ ‚d+|vsJ ‚d-|vsJ ‚|d          }d|v sJ ‚|d         d         d#         d$u sJ ‚|d         d         d         d         d
k    sJ ‚|d         d         d         d%         dk    sJ ‚|d         d         d         d&         d'         d(k    sJ ‚|d         d         d         d&         d)         dk    sJ ‚|d         d         d         d&         d         d3         dk    sJ ‚|d         d         d         d         d         dk    sJ ‚|d         d         d         d         d         dk    sJ ‚|d         d         d                              d4¦  «        	 �J ‚d*|vsJ ‚d!|vsJ ‚d+|vsJ ‚d,|vsJ ‚d-|vsJ ‚|d         }d*|v sJ ‚|d*         d0         d#         d$u sJ ‚|d*         d0         d         i k    sJ ‚|d*         d.         d#         d/u sJ ‚|d*         d.         d         i k    sJ ‚d!|vsJ ‚d|vsJ ‚d+|vsJ ‚d,|vsJ ‚d-|vsJ ‚t	          j        |¦  «        }|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        j        d
k    sJ ‚|j        j        j        j        j        €J ‚|j        j        j        j        j        j        dk    sJ ‚|j        j        j        j        j        j        dk    sJ ‚|j        j        j        j        j        	 €J ‚|j        j        j        j        j                             ¦   «         dk    sJ ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j        	 €J ‚|j        d         j        j        j        d$u sJ ‚|j        d         j        j        j        j        dk    sJ ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j         �J ‚d|j        v sJ ‚|j        d         j        €J ‚|j        d         j        j!        €J ‚|j        d         j        j!        j        d/u sJ ‚|j        d         j        �J ‚|j        d         j        �J ‚d|j        v sJ ‚|j        d         j         €J ‚|j        d         j         j"        €J ‚|j        d         j         j"        j        d/u sJ ‚|j        d         j        �J ‚|j        d         j        �J ‚d|j        v sJ ‚|j        d         j#        €J ‚|j        d         j#        j$        €J ‚|j        d         j#        j$        j        d/u sJ ‚|j        d         j        �J ‚|j        d         j        �J ‚d |j        v sJ ‚|j        d          j        €J ‚|j        d          j        j        €J ‚|j        d          j        j        j        j        d
k    sJ ‚|j        d          j        j        j        j        dk    sJ ‚|j        d          j        j        j        j        	 €J ‚|j        d          j        j        j        j        j        dk    sJ ‚|j        j        €J ‚|j        j        j!        €J ‚|j        j        j!        j        d$u sJ ‚|j        j         €J ‚|j        j         j"        €J ‚|j        j         j"        j        d$u sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        d/u sJ ‚	 d|v r|d= d|v r|d= d5S d5S # d|v r|d= d|v r|d= w xY w)6zLTest serialization/deserialization with multiple mixed schema modifications.r   ré   rO   r   Úmixed_test_modelr¦   i,  é@   ©r«   r¬   rW   rï   r8   Úsparse_modelr~   Ú
text_fieldr€   Úembeddings_fieldrv   ÚtagsÚcountÚpricer_   rn   rd   re   r5   r–   r®   r«   r¬   r]   r^   rf   rg   rb   Trp   r�   rÒ   rÓ   r   r`   rÖ   r×   rØ   rc   Fra   ri   rk   rC   rû   N)%rð   rê   rA   r   r   r   r   rx   r   r   r‰   r   r	   rÙ   r7   rÜ   r_   rd   re   r5   r–   r®   r«   r¬   r�   r   rn   rf   rg   rb   rp   r`   rh   rc   ri   rj   rk   )r    rê   rÝ   rñ   r°   r    Ú	sparse_efr‘   r’   rÎ   Úfloat_configrÞ   r_   rn   Úembeddings_field_jsonÚ	tags_jsonÚ
count_jsonÚ
price_jsonÚembedding_jsonÚdocument_jsonrá   s                        r!   Ú6test_serialize_deserialize_complex_mixed_modificationszDTestNewSchema.test_serialize_deserialize_complex_mixed_modificationsŒ  sÉ  € ð 	QÐPÐPÐPÐPÐPå6KÐ!Ð"2Ñ3Ý3NÐ! -Ñ0ðO	=å‘x”xˆHõ .Ð9KÐLÑLÔLˆIÝ)¸#ÈRÐPÑPÔPˆKÝ-Ø#,°D¸{ðñ ô ˆMð ×!Ò!¨Ð!Ñ7Ô7Ð7õ 4¸ÐHÑHÔHˆIÝ3Ø#,¸ðñ ô ˆMð ×!Ò!¨Ð<NÐ!ÑOÔOÐOõ 6Ñ7Ô7ˆMØ×!Ò!¨¸FÐ!ÑCÔCÐCõ 0Ñ1Ô1ˆJØ×!Ò!¨¸Ð!ÑAÔAÐAõ 4Ñ5Ô5ˆLØ×!Ò!¨¸7Ð!ÑCÔCÐCð !×2Ò2Ñ4Ô4ˆIð ! Ô,ˆHØ˜VÔ$ˆDð ˜LÔ)¨.Ô9¸(ÔCÀGÔLÐPTÒTÐTÐTÐTà˜Ô& ~Ô6°xÔ@ÀÔHØ%ôð òð ð ð ð ˜Ô& ~Ô6°xÔ@ÀÔHØ#ôð òð ð ð ð &¨Ð-Ð-Ð-Ð-Ø˜T�>�>�>�>Ø˜d�?�?�?�?Ø˜d�?�?�?�?Ø $Ð&Ð&Ð&Ð&Ø 4Ð'Ð'Ð'Ð'ð %)Ð);Ô$<Ð!Ø"Ð&;Ð;Ð;Ð;Ð;à% oÔ6Ð7LÔMÈiÔXØðð ð ð ð & oÔ6Ð7LÔMÈhÔWØ ôð  ò ð  ð  ð  ð & oÔ6Ð7LÔMÈhÔWØ(ôàôð òð ð ð ð & oÔ6Ð7LÔMÈhÔWØ(ôàôð !ò!ð !ð !ð !ð & oÔ6Ð7LÔMÈhÔWØ(ôàôà"ô$ð "ò"ð "ð "ð "ð Ð#8Ð8Ð8Ð8Ð8ØÐ'<Ð<Ð<Ð<Ð<ØÐ 5Ð5Ð5Ð5Ð5ØÐ"7Ð7Ð7Ð7Ð7ØÐ!6Ð6Ð6Ð6Ð6ð ˜VœˆIØ˜yÐ(Ð(Ð(Ð(Ø˜XÔ&Ð'>Ô?À	ÔJÈeÐSÐSÐSÐSØ˜XÔ&Ð'>Ô?ÀÔIÈRÒOÐOÐOÐOà i°Ô&9Ð9Ð9Ð9Ð9à"¨)Ð3Ð3Ð3Ð3Ø yÐ0Ð0Ð0Ð0Ø 	Ð)Ð)Ð)Ð)Ø )Ð+Ð+Ð+Ð+Ø Ð*Ð*Ð*Ð*ð ˜gœˆJØ˜JÐ&Ð&Ð&Ð&Ø˜eÔ$Ð%9Ô:¸9ÔEÈÐNÐNÐNÐNØ˜eÔ$Ð%9Ô:¸8ÔDÈÒJÐJÐJÐJà :Ð-Ð-Ð-Ð-Ø"¨*Ð4Ð4Ð4Ð4Ø zÐ1Ð1Ð1Ð1Ø *Ð,Ð,Ð,Ð,Ø Ð+Ð+Ð+Ð+ð ˜gœˆJØ˜jÐ(Ð(Ð(Ð(Ø˜gÔ&Ð'=Ô>¸yÔIÈUÐRÐRÐRÐRØ˜gÔ&Ð'=Ô>¸xÔHÈBÒNÐNÐNÐNà :Ð-Ð-Ð-Ð-Ø"¨*Ð4Ð4Ð4Ð4Ø zÐ1Ð1Ð1Ð1Ø 
Ð*Ð*Ð*Ð*Ø Ð+Ð+Ð+Ð+ð " ,Ô/ˆNØ >Ð1Ð1Ð1Ð1Ø! ,Ô/°Ô?À	ÔJÈdÐRÐRÐRÐRà˜|Ô,¨^Ô<¸XÔFÀwÔOÐSWÒWÐWÐWÐWð ˜|Ô,¨^Ô<¸XÔFÀ|ÔTØòð ð ð ð ˜|Ô,¨^Ô<¸XÔFØ(ôàôð òð ð ð ð ˜|Ô,¨^Ô<¸XÔFØ(ôàôð $ò$ð $ð $ð $ð ˜|Ô,¨^Ô<¸XÔFØ(ôàôà(ô*ð &ò&ð &ð &ð &ð ˜|Ô,¨^Ô<¸XÔFÀvÔNØ%ôð òð ð ð ð ˜|Ô,¨^Ô<¸XÔFÀvÔNØ#ôð òð ð ð ð ˜|Ô,¨^Ô<¸XÔF×JÒJÈ7ÑSÔSØðð ð ð  >Ð1Ð1Ð1Ð1Ø"¨.Ð8Ð8Ð8Ð8Ø Ð.Ð.Ð.Ð.Ø .Ð0Ð0Ð0Ð0Ø Ð/Ð/Ð/Ð/ð ! Ô-ˆMØ˜}Ð,Ð,Ð,Ð,Ø  Ô*¨;Ô7¸	ÔBÀdÐJÐJÐJÐJØ  Ô*¨;Ô7¸ÔAÀRÒGÐGÐGÐGØ  Ô*Ð+BÔCÀIÔNÐRWÐWÐWÐWÐWØ  Ô*Ð+BÔCÀHÔMÐQSÒSÐSÐSÐSà"¨-Ð7Ð7Ð7Ð7Ø }Ð4Ð4Ð4Ð4Ø Ð-Ð-Ð-Ð-Ø -Ð/Ð/Ð/Ð/Ø Ð.Ð.Ð.Ð.õ "Ô7¸	ÑBÔBˆLð  Ô(Ô3Ð?Ð?Ð?ØÔ(Ô3Ô@ÐLÐLÐLØÔ(Ô3Ô@ÔGÔMÐQUÒUÐUÐUÐUØÔ(Ô3Ô@ÔGÔLÐXÐXÐXàÔ%Ô0Ô=ÔDÔIÔYØòð ð ð ð Ô%Ô0Ô=ÔDÔIÔWØòð ð ð ð Ô%Ô0Ô=ÔDÔWØðð ð ð Ô%Ô0Ô=ÔDÔW×\Ò\Ñ^Ô^Ø#ò$ð $ð $ð $ð
 &¨Ô):Ð:Ð:Ð:Ð:ØÔ$Ð%7Ô8ÔFÐRÐRÐRàÔ!Ð"4Ô5ÔCÔWØðð ð ð Ô!Ø&ôäÔ 3´GØðð ð ð ð Ô!Ø&ôäÔ 3´F¼:Øò ð  ð  ð  ð  Ô$Ð%7Ô8Ô?ÐGÐGÐGØÔ$Ð%7Ô8ÔCÐKÐKÐKØÔ$Ð%7Ô8ÔBÐJÐJÐJð ˜\Ô.Ð.Ð.Ð.Ð.ØÔ$ VÔ,Ô3Ð?Ð?Ð?ØÔ$ VÔ,Ô3ÔIÐUÐUÐUàÔ! &Ô)Ô0ÔFÔNÐRWÐWÐWÐWÐWð  Ô$ VÔ,Ô:ÐBÐBÐBØÔ$ VÔ,Ô7Ð?Ð?Ð?ð ˜lÔ/Ð/Ð/Ð/Ð/ØÔ$ WÔ-Ô7ÐCÐCÐCØÔ$ WÔ-Ô7ÔJÐVÐVÐVàÔ! 'Ô*Ô4ÔGÔOÐSXÐXÐXÐXÐXð  Ô$ WÔ-Ô4Ð<Ð<Ð<ØÔ$ WÔ-Ô8Ð@Ð@Ð@ð ˜lÔ/Ð/Ð/Ð/Ð/ØÔ$ WÔ-Ô9ÐEÐEÐEàÔ! 'Ô*Ô6ÔKÐWÐWÐWð Ô! 'Ô*Ô6ÔKÔSØðð ð ð ð  Ô$ WÔ-Ô4Ð<Ð<Ð<ØÔ$ WÔ-Ô;ÐCÐCÐCð   <Ô#4Ð4Ð4Ð4Ð4ØÔ$ \Ô2Ô=ÐIÐIÐIØÔ$ \Ô2Ô=ÔJÐVÐVÐVàÔ! ,Ô/Ô:ÔGÔNÔTØòð ð ð ð Ô!Ø ôäœ\¬&´Øòð ð ð ð Ô! ,Ô/Ô:ÔGÔNÔSØðð ð ð Ô!Ø ôäœ\¬&´´oØòð ð ð ð  Ô(Ô/Ð;Ð;Ð;ØÔ(Ô/ÔEÐQÐQÐQàÔ%Ô,ÔBÔJÈdÐRÐRÐRÐRàÔ(Ô2Ð>Ð>Ð>ØÔ(Ô2ÔEÐQÐQÐQàÔ%Ô/ÔBÔJÈdÐRÐRÐRÐRàÔ(Ô6ÐBÐBÐBØÔ(Ô6ÔJÐVÐVÐVàÔ%Ô3ÔGÔOÐSXÐXÐXÐXÐXÐXð  Ð#<Ð<Ð<Ø-Ð.>Ð?ØÐ 9Ð9Ð9Ø-¨mÐ<Ð<Ð<ð :Ð9øð  Ð#<Ð<Ð<Ø-Ð.>Ð?ØÐ 9Ð9Ð9Ø-¨mÐ<Ð<Ð<Ð<Ð<s   œj	j8 ê8kc                 ó  — t          ¦   «         }t          dt          ¦   «         ¬¦  «        }|                     |d¬¦  «         t	          ¦   «         }|                     |d¬¦  «         d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j	        €J ‚|j	        j
        €J ‚|j	        j
        j        du sJ ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|j        d         j        �J ‚|                     ¦   «         }|d         d         }d|v sJ ‚d	|v sJ ‚|d         d
         d         du sJ ‚|d	         d         d         du sJ ‚t          j        |¦  «        }d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j	        €J ‚|j	        j
        €J ‚|j	        j
        j        du sJ ‚dS )z;Test that multiple index types can coexist on the same key.Úsourcer�   Úmulti_fieldrv   NTrn   rf   r`   rg   rb   rc   )r   r   r   rx   r   rn   rf   rg   rb   r`   rc   rd   rh   rj   rl   rÙ   rÜ   )	r    rr   r‘   r’   r  rÞ   Úmulti_field_jsonrá   Údes_multi_fields	            r!   Ú%test_multiple_index_types_on_same_keyz3TestNewSchema.test_multiple_index_types_on_same_keyå  s™  € å‘”ˆõ 0ØÕ4OÑ4QÔ4Qð
ñ 
ô 
ˆð 	×Ò =°mÐÑDÔDÐDõ 2Ñ3Ô3ˆØ×Ò =°mÐÑDÔDÐDð  ¤Ð+Ð+Ð+Ð+Ø”k -Ô0ˆØÔ(Ð4Ð4Ð4ØÔ(Ô<ÐHÐHÐHØÔ(Ô<ÔDÈÐLÐLÐLÐLàÔ!Ð-Ð-Ð-ØÔ!Ô7ÐCÐCÐCØÔ!Ô7Ô?À4ÐGÐGÐGÐGð Œ{˜=Ô)Ô4Ð<Ð<Ð<ØŒ{˜=Ô)Ô3Ð;Ð;Ð;ØŒ{˜=Ô)Ô5Ð=Ð=Ð=ØŒ{˜=Ô)Ô1Ð9Ð9Ð9ð ×,Ò,Ñ.Ô.ˆ	Ø$ VÔ,¨]Ô;ÐØÐ"2Ð2Ð2Ð2Ð2ØÐ+Ð+Ð+Ð+Ð+à˜_Ô-Ð.CÔDÀYÔOÐSWÐWÐWÐWÐWà Ô)Ð*AÔBÀ9ÔMÐQUÐUÐUÐUÐUõ Ô3°IÑ>Ô>ˆØ Ô 1Ð1Ð1Ð1Ð1Ø&Ô+¨MÔ:ˆØÔ,Ð8Ð8Ð8ØÔ,Ô@ÐLÐLÐLØÔ,Ô@ÔHÈDÐPÐPÐPÐPØÔ%Ð1Ð1Ð1ØÔ%Ô;ÐGÐGÐGØÔ%Ô;ÔCÀtÐKÐKÐKÐKÐKÐKr#   c                 óò  — t          ¦   «         }t          ¦   «         }|                     |d¬¦  «         d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|                     |d¬¦  «         d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|                     ¦   «         }d|d         v sJ ‚|d         d         }d|v sJ ‚|d         d         d	         du sJ ‚t          j	        |¦  «        }d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚dS )
zcTest that disabling an index reverts to default behavior (key may still exist with disabled state).Ú
temp_fieldrv   NTFrn   r`   rc   rb   )
r   r   rx   rn   r`   rc   rb   r‰   rÙ   rÜ   )	r    rr   r’   Útemp_field_initialr  rÞ   Útemp_field_jsonrá   Údes_temp_fields	            r!   Ú$test_override_then_revert_to_defaultz2TestNewSchema.test_override_then_revert_to_default  sä  € å‘”ˆõ 2Ñ3Ô3ˆØ×Ò =°lÐÑCÔCÐCð ˜vœ{Ð*Ð*Ð*Ð*Ø#œ[¨Ô6ÐØ!Ô(Ð4Ð4Ð4Ø!Ô(Ô>ÐJÐJÐJØ!Ô(Ô>ÔFÈ$ÐNÐNÐNÐNð 	×Ò =°lÐÑCÔCÐCð ˜vœ{Ð*Ð*Ð*Ð*Ø”[ Ô.ˆ
ØÔ Ð,Ð,Ð,ØÔ Ô6ÐBÐBÐBØÔ Ô6Ô>À%ÐGÐGÐGÐGð ×,Ò,Ñ.Ô.ˆ	Ø˜y¨Ô0Ð0Ð0Ð0Ð0Ø# FÔ+¨LÔ9ˆØ˜?Ð*Ð*Ð*Ð*Ø˜xÔ(Ð)@ÔAÀ)ÔLÐPUÐUÐUÐUÐUõ Ô3°IÑ>Ô>ˆØ˜|Ô0Ð0Ð0Ð0Ð0Ø%Ô*¨<Ô8ˆØÔ$Ð0Ð0Ð0ØÔ$Ô:ÐFÐFÐFØÔ$Ô:ÔBÀeÐKÐKÐKÐKÐKÐKr#   c                 óV  — t          ¦   «         }t          ¦   «         }t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     t          ¦   «         d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          ¦   «         }|                     |d¬¦  «         t          j        t          d¬¦  «        5  |                     ¦   «          ddd¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  |                     ¦   «          ddd¦  «         n# 1 swxY w Y   t          j        t          d
¬¦  «        5  |                     d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z6Test that invalid operations raise appropriate errors.rœ   r˜   r^   rv   Nr›   r]   zCannot disable all indexesz&Cannot enable all index types globallyz-Cannot enable all index types for key 'mykey'Úmykeyr¾   z.Cannot disable all index types for key 'mykey'rÁ   r8   rÂ   r—   Úcustom_fieldrµ   )	r   r   r�   rž   rŸ   rx   r   r   r‰   rÄ   s       r!   Ú&test_error_handling_invalid_operationsz4TestNewSchema.test_error_handling_invalid_operationsA  s  € å‘”ˆõ *Ñ+Ô+ˆÝŒ]ÝÐOð
ñ 
ô 
ð 	Hð 	Hð ×Ò }¸,ÐÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hõ Œ]ÝÐNð
ñ 
ô 
ð 	Uð 	Uð ×ÒÕ'@Ñ'BÔ'BÈÐÑTÔTÐTð	Uð 	Uð 	Uñ 	Uô 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uøøøð 	Uð 	Uð 	Uð 	Uõ $Ñ%Ô%ˆ
Ø×Ò :°;ÐÑ?Ô?Ð?õ Œ]�:Ð-IÐJÑJÔJð 	"ð 	"Ø×ÒÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ Œ]�:Ð-UÐVÑVÔVð 	"ð 	"Ø×ÒÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ Œ]ÝÐMð
ñ 
ô 
ð 	-ð 	-ð ×Ò GÐÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-õ Œ]ÝÐNð
ñ 
ô 
ð 	-ð 	-ð ×Ò GÐÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-õ Œ]ÝÐPð
ñ 
ô 
ð 	6ð 	6ð ×Ò }ÐÑ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6õ Œ]ÝÐUð
ñ 
ô 
ð 	3ð 	3ð ×Ò zÐÑ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3õ Œ]ÝÐOð
ñ 
ô 
ð 	Jð 	Jð ×Ò }¸.ÐÑIÔIÐIð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jõ Œ]ÝÐNð
ñ 
ô 
ð 	Gð 	Gð ×Ò z°~ÐÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs³   ¸AÁA Á#A Â$B2Â2B6Â9B6Ã=DÄD"Ä%D"ÅE%Å%E)Å,E)ÆF.Æ.F2Æ5F2ÇG7Ç7G;Ç>G;ÈI É IÉIÉ&J	Ê	JÊJÊ/KËKËKË9LÌL"Ì%L"c                 óœ  — t          ¦   «         }|                     ¦   «         }t          |d         ¦  «        dk    sJ ‚d|d         v sJ ‚d|d         v sJ ‚t          j        |¦  «        }|j        }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        j        €J ‚|j        j        j        du sJ ‚|j	        €J ‚|j	        j
        €J ‚|j	        j
        j        du sJ ‚|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚t          |j        ¦  «        dk    sJ ‚d|j        v sJ ‚d|j        v sJ ‚dS )z;Test serialization/deserialization of an unmodified schema.rn   r\   r]   r^   NTF)r   rÙ   ro   rÜ   r_   r`   rc   rb   ra   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   )r    rÝ   rÞ   rá   r_   s        r!   Útest_empty_schema_serializationz-TestNewSchema.test_empty_schema_serialization‚  s]  € õ ‘8”8ˆð ×.Ò.Ñ0Ô0ˆ	õ �9˜VÔ$Ñ%Ô%¨Ò*Ð*Ð*Ð*Ø˜i¨Ô/Ð/Ð/Ð/Ð/Ø˜y¨Ô0Ð0Ð0Ð0Ð0õ Ô3°IÑ>Ô>ˆð  Ô(ˆØŒÐ*Ð*Ð*ØŒÔ4Ð@Ð@Ð@ØŒÔ4Ô<ÀÐDÐDÐDÐDØŒÔ(Ð4Ð4Ð4ØŒÔ(Ô0°EÐ9Ð9Ð9Ð9ØÔ"Ð.Ð.Ð.ØÔ"Ô/Ð;Ð;Ð;ØÔ"Ô/Ô7¸5Ð@Ð@Ð@Ð@ØÔ%Ð1Ð1Ð1ØÔ%Ô9ÐEÐEÐEØÔ%Ô9ÔAÀUÐJÐJÐJÐJØÔ!Ð-Ð-Ð-ØÔ!Ô4Ð@Ð@Ð@ØÔ!Ô4Ô<ÀÐDÐDÐDÐDØÔ#Ð/Ð/Ð/ØÔ#Ô8ÐDÐDÐDØÔ#Ô8Ô@ÀDÐHÐHÐHÐHØÔÐ+Ð+Ð+ØÔÔ3Ð?Ð?Ð?ØÔÔ3Ô;¸tÐCÐCÐCÐCõ �<Ô$Ñ%Ô%¨Ò*Ð*Ð*Ð*Ø˜lÔ/Ð/Ð/Ð/Ð/Ø˜|Ô0Ð0Ð0Ð0Ð0Ð0Ð0r#   c                 óx  — ddl m} t          |d<   	 t          ¦   «         }t          d¬¦  «        }t	          dd¬¦  «        }t          |d	|¬
¦  «        }|                     |¬¦  «         |                     t          dt          ¦   «         ¬¦  «        d¬¦  «         | 	                    t          ¦   «         d¬¦  «         |                     ¦   «         }t          j        |¦  «        }|                     ¦   «         }t          j        |¦  «        }	|	                     ¦   «         }
t          j        |
¦  «        }||	|fD �]£}|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        j        d	k    sJ ‚|j        j        j        j        j        €J ‚|j        j        j        j        j        j        dk    sJ ‚|j        j        j        j        j        j        dk    sJ ‚|j        j        j        j        j        	 €J ‚|j        j        j        j        j                             ¦   «         dk    sJ ‚d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        j        j        j        dk    sJ ‚d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚�Œ¥t=          |j        ¦  «        t=          |	j        ¦  «        cxk    rt=          |j        ¦  «        k    sn J ‚t?          |j                             ¦   «         ¦  «        t?          |	j                             ¦   «         ¦  «        cxk    r*t?          |j                             ¦   «         ¦  «        k    sn J ‚	 d|v r|d= dS dS # d|v r|d= w xY w)zRTest that multiple serialization/deserialization cycles preserve schema integrity.r   ré   rO   Úroundtrip_modelr¦   rø   é(   r  rS   rï   r8   Útextr�   Ú
embeddingsrv   r  NTF) rð   rê   rA   r   r   r   rx   r   r   r‰   r   rÙ   rÜ   r_   rd   re   r5   r–   r®   r«   r¬   r�   r   rn   rf   rg   rb   rp   r`   rc   ro   Úset)r    rê   rÝ   rñ   r°   r    Újson1Úschema1Újson2Úschema2Újson3Úschema3rr   Úembeddings_overrideÚtags_overrides                  r!   Ú.test_multiple_serialize_deserialize_roundtripsz<TestNewSchema.test_multiple_serialize_deserialize_roundtrips®  s{  € ð 	QÐPÐPÐPÐPÐPå6KÐ!Ð"2Ñ3ðU	@å‘x”xˆHÝ-Ð9JÐKÑKÔKˆIÝ)¸#ÈRÐPÑPÔPˆKÝ-Ø#,°HÀ;ðñ ô ˆMð ×!Ò!¨Ð!Ñ7Ô7Ð7Ø×!Ò!Ý.Ø%Õ:UÑ:WÔ:Wðñ ô ð !ð	 "ñ ô ð ð ×!Ò!Õ)BÑ)DÔ)DÈ&Ð!ÑQÔQÐQð ×.Ò.Ñ0Ô0ˆEÝÔ2°5Ñ9Ô9ˆGð ×-Ò-Ñ/Ô/ˆEÝÔ2°5Ñ9Ô9ˆGð ×-Ò-Ñ/Ô/ˆEÝÔ2°5Ñ9Ô9ˆGð # G¨WÐ5ð )Sñ )S�Ø”Ô1Ð=Ð=Ð=Ø”Ô1Ô>ÐJÐJÐJØ”Ô1Ô>ÔEÔKÈxÒWÐWÐWÐWØ”Ô1Ô>ÔEÔJÐVÐVÐVà”OÔ.Ô;ÔBÔGÔWØòð ð ð ð ”OÔ.Ô;ÔBÔGÔUØòð ð ð ð ”OÔ.Ô;ÔBÔUØð ð  ð  ð ”OÔ.Ô;ÔBÔU×ZÒZÑ\Ô\Ø'ò(ð (ð (ð (ð
 $ v¤{Ð2Ð2Ð2Ð2Ø&,¤k°,Ô&?Ð#Ø*Ô8ÐDÐDÐDØ*Ô8ÔLÐXÐXÐXà'Ô5ÔIÔQØðð ð ð ð (Ô5ÔIÔPÔ[Øòð ð ð ð
  ¤Ð,Ð,Ð,Ð,Ø &¤¨FÔ 3�Ø$Ô+Ð7Ð7Ð7Ø$Ô+ÔAÐMÐMÐMØ$Ô+ÔAÔIÈUÐRÐRÐRÐRÑRõ �w”|Ñ$Ô$­¨G¬LÑ(9Ô(9ÐNÐNÒNÐN½SÀÄÑ=NÔ=NÒNÐNÐNÐNÐNÐNå�G”L×%Ò%Ñ'Ô'Ñ(Ô(Ý�w”|×(Ò(Ñ*Ô*Ñ+Ô+ð,ð ,ò ,ð ,å�w”|×(Ò(Ñ*Ô*Ñ+Ô+ò,ð ,ð ,ð ,ð ,ð ,ð ,ð  Ð#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?ð =Ð<øÐÐ#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?Ð?Ð?s   ’NN0 Î0	N9c                 ó¾  — t          ¦   «         }t          d¦  «        D ]“}d|› �}|dk    r6|                     t          d|› �t	          ¦   «         ¬¦  «        |¬¦  «         ŒC|dz  dk    r$|                     t          ¦   «         |¬¦  «         Œp|                     t          ¦   «         |¬¦  «         Œ”t          |j	        ¦  «        d	k    sJ ‚d
|j	        v sJ ‚|j	        d
         }|j
        €J ‚|j
        j        €J ‚|j
        j        j        du sJ ‚d|j	        v sJ ‚|j	        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚d|j	        v sJ ‚|j	        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|                     ¦   «         }t          |d         ¦  «        d	k    sJ ‚t          j        |¦  «        }t          |j	        ¦  «        d	k    sJ ‚d
|j	        v sJ ‚|j	        d
         }	|	j
        €J ‚|	j
        j        €J ‚|	j
        j        j        du sJ ‚|	j
        j        j        j        dk    sJ ‚d|j	        v sJ ‚|j	        d         }
|
j        €J ‚|
j        j        €J ‚|
j        j        j        du sJ ‚d|j	        v sJ ‚|j	        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚dS )z2Test schema with many key overrides (stress test).r÷   Úfield_r   Úsource_r�   rv   r\   r(   é4   Úfield_0NTÚfield_1FÚfield_2rn   Úsource_0Úfield_49Úfield_48)r   Úrangerx   r   r   r‰   r   r   ro   rn   rf   rg   rb   r`   rc   rh   ri   rÙ   rÜ   r5   rp   )r    rr   ÚiÚkey_namer6  r7  r8  rÞ   rá   Údes_field_0Údes_field_49Údes_field_48s               r!   Útest_many_keys_stressz#TestNewSchema.test_many_keys_stress  s§  € å‘”ˆõ �r‘”ð 	Sð 	SˆAØ# �|�|ˆHØ�AŠvˆvà×#Ò#Ý2Ø#0¨Q = =Ý+FÑ+HÔ+Hðñ ô ð !ð $ñ ô ð ð ð �Q‘˜!’�à×#Ò#Õ+DÑ+FÔ+FÈHÐ#ÑUÔUÐUÐUð ×#Ò#Õ+AÑ+CÔ+CÈÐ#ÑRÔRÐRÐRõ �6”;ÑÔ 2Ò%Ð%Ð%Ð%ð ˜FœKÐ'Ð'Ð'Ð'Ø”+˜iÔ(ˆØÔ$Ð0Ð0Ð0ØÔ$Ô8ÐDÐDÐDØÔ$Ô8Ô@ÀDÐHÐHÐHÐHà˜FœKÐ'Ð'Ð'Ð'Ø”+˜iÔ(ˆØŒ~Ð)Ð)Ð)ØŒ~Ô3Ð?Ð?Ð?ØŒ~Ô3Ô;¸uÐDÐDÐDÐDà˜FœKÐ'Ð'Ð'Ð'Ø”+˜iÔ(ˆØÔ Ð,Ð,Ð,ØÔ Ô3Ð?Ð?Ð?ØÔ Ô3Ô;¸uÐDÐDÐDÐDð ×,Ò,Ñ.Ô.ˆ	Ý�9˜VÔ$Ñ%Ô%¨Ò+Ð+Ð+Ð+õ Ô3°IÑ>Ô>ˆÝ�<Ô$Ñ%Ô%¨Ò+Ð+Ð+Ð+ð ˜LÔ-Ð-Ð-Ð-Ð-Ø"Ô'¨	Ô2ˆØÔ(Ð4Ð4Ð4ØÔ(Ô<ÐHÐHÐHØÔ(Ô<ÔDÈÐLÐLÐLÐLàÔ%Ô9Ô@ÔKØòð ð ð ð ˜\Ô.Ð.Ð.Ð.Ð.Ø#Ô(¨Ô4ˆØÔ"Ð.Ð.Ð.ØÔ"Ô8ÐDÐDÐDØÔ"Ô8Ô@ÀEÐIÐIÐIÐIà˜\Ô.Ð.Ð.Ð.Ð.Ø#Ô(¨Ô4ˆØÔ%Ð1Ð1Ð1ØÔ%Ô8ÐDÐDÐDØÔ%Ô8Ô@ÀEÐIÐIÐIÐIÐIÐIr#   c                 óx  — t          ¦   «         }|                     t          dt          ¦   «         ¬¦  «        d¬¦  «                             t          ¦   «         d¬¦  «                             t          ¦   «         d¬¦  «                             t          ¦   «         d¬¦  «        }||u sJ ‚d|j        v sJ ‚|j        d         }|j        €J ‚|j        j	        €J ‚|j        j	        j
        d	u sJ ‚d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j
        d
u sJ ‚d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j
        d
u sJ ‚d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j
        d
u sJ ‚dS )z@Test chaining multiple create_index and delete_index operations.r&  r�   Úfield1rv   Úfield2Úfield3Úfield4NTF)r   rx   r   r   r‰   r   r   rn   rf   rg   rb   r`   rc   rh   ri   )r    rr   rz   rD  rE  rF  rG  s          r!   Útest_chained_operationsz%TestNewSchema.test_chained_operationsX  s  € å‘”ˆð ×ÒÝ.Ø%Õ:UÑ:WÔ:Wðñ ô ð ð	  ñ ô ÷ Š\Õ!:Ñ!<Ô!<À(ˆ\ÑKÔKßŠ\Õ!:Ñ!<Ô!<À(ˆ\ÑKÔKßŠ\Õ!7Ñ!9Ô!9¸xˆ\ÑHÔHð 	ð ˜ÐÐÐÐð ˜6œ;Ð&Ð&Ð&Ð&Ø”˜XÔ&ˆØÔ#Ð/Ð/Ð/ØÔ#Ô7ÐCÐCÐCØÔ#Ô7Ô?À4ÐGÐGÐGÐGà˜6œ;Ð&Ð&Ð&Ð&Ø”˜XÔ&ˆØŒ}Ð(Ð(Ð(ØŒ}Ô2Ð>Ð>Ð>ØŒ}Ô2Ô:¸eÐCÐCÐCÐCà˜6œ;Ð&Ð&Ð&Ð&Ø”˜XÔ&ˆØŒ}Ð(Ð(Ð(ØŒ}Ô2Ð>Ð>Ð>ØŒ}Ô2Ô:¸eÐCÐCÐCÐCà˜6œ;Ð&Ð&Ð&Ð&Ø”˜XÔ&ˆØÔÐ+Ð+Ð+ØÔÔ2Ð>Ð>Ð>ØÔÔ2Ô:¸eÐCÐCÐCÐCÐCÐCr#   c                 óÊ  — t          ¦   «         }|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚t          ¦   «         }|                     |¬¦  «         |j        j        j        €J ‚|j        j        j        j        du sJ ‚t          ¦   «         }|                     |¬¦  «         |j        j        j        €J ‚|j        j        j        j        du sJ ‚| 
                    t          ¦   «         d¬¦  «         d|j        v sJ ‚|j        d         j        j        j        du sJ ‚|                     t          ¦   «         d¬¦  «         d|j        v sJ ‚|j        d         j        j        j        du sJ ‚|                     ¦   «         }|d         d	         d
         d         du sJ ‚|d         d         d         d         du sJ ‚|d         d         d	         d
         d         du sJ ‚|d         d         d         d         d         du sJ ‚t          j        |¦  «        }|j        j        j        j        du sJ ‚|j        j        j        j        du sJ ‚|j        d         j        j        j        du sJ ‚|j        d         j        j        j        du sJ ‚dS )z8Test enabling/disabling float and bool inverted indexes.NTr8   Fr  rv   Ú	is_activer_   r×   rk   rb   rØ   rm   rn   )r   r_   rj   rk   rb   rl   rm   r	   r‰   r
   rx   rn   rÙ   rÜ   )r    rr   r	  Úbool_configrÞ   rá   s         r!   Ú$test_float_and_bool_inverted_indexesz2TestNewSchema.test_float_and_bool_inverted_indexes…  sJ  € å‘”ˆð ŒÔ*Ð6Ð6Ð6ØŒÔ*Ô?ÐKÐKÐKØŒÔ*Ô?ÔGÈ4ÐOÐOÐOÐOØŒÔ&Ð2Ð2Ð2ØŒÔ&Ô:ÐFÐFÐFØŒÔ&Ô:ÔBÀdÐJÐJÐJÐJõ 0Ñ1Ô1ˆØ×Ò <ÐÑ0Ô0Ð0ØŒÔ*Ô?ÐKÐKÐKØŒÔ*Ô?ÔGÈ5ÐPÐPÐPÐPõ .Ñ/Ô/ˆØ×Ò ;ÐÑ/Ô/Ð/ØŒÔ&Ô:ÐFÐFÐFØŒÔ&Ô:ÔBÀeÐKÐKÐKÐKð 	×ÒÕ#;Ñ#=Ô#=À7ÐÑKÔKÐKØ˜&œ+Ð%Ð%Ð%Ð%ØŒ{˜7Ô#Ô/ÔDÔLÐPTÐTÐTÐTÐTð 	×ÒÕ#:Ñ#<Ô#<À+ÐÑNÔNÐNØ˜fœkÐ)Ð)Ð)Ð)ØŒ{˜;Ô'Ô/ÔCÔKÈuÐTÐTÐTÐTð ×,Ò,Ñ.Ô.ˆ	à�jÔ! 'Ô*Ð+AÔBÀ9ÔMÐQVÐVÐVÐVÐVà˜Ô$ VÔ,Ð-BÔCÀIÔNÐRWÐWÐWÐWÐWà�fÔ˜gÔ& wÔ/Ð0FÔGÈ	ÔRØðð ð ð ð �fÔ˜kÔ*¨6Ô2Ð3HÔIÈ)ÔTØðð ð ð õ
 Ô3°IÑ>Ô>ˆØÔ$Ô0ÔEÔMÐQVÐVÐVÐVÐVØÔ$Ô,Ô@ÔHÈEÐQÐQÐQÐQàÔ˜gÔ&Ô2ÔGÔOÐSWÐWÐWÐWÐWð Ô˜kÔ*Ô2ÔFÔNÐRWÐWÐWÐWÐWÐWÐWr#   c                 ó  — ddl m} t          |d<   	 t          ¦   «         }t          d¬¦  «        }t	          |¬¦  «        }|                     |¬¦  «         |                     ¦   «         }|d         d	         d
         }|d         d         dk    sJ ‚|d         d         d	         d
         }|d         d         dk    sJ ‚t          j        |¦  «        }|j        j	        €J ‚|j        j	        j
        €J ‚|j        j	        j
        j        j        dk    sJ ‚|j        d         j	        €J ‚|j        d         j	        j
        €J ‚|j        d         j	        j
        j        j        dk    sJ ‚	 d|v r|d= dS dS # d|v r|d= w xY w)zVTest that space is correctly inferred from embedding function when not explicitly set.r   ré   rO   Úspace_inference_testr¦   ©r�   r8   r_   rd   re   r5   r–   rS   rn   r^   N©rð   rê   rA   r   r   rx   rÙ   rÜ   r_   rd   re   r5   r–   rn   ©	r    rê   rr   rñ   r    rÞ   r±   r²   rá   s	            r!   Ú,test_space_inference_from_embedding_functionz:TestNewSchema.test_space_inference_from_embedding_functionÁ  sû  € ð 	QÐPÐPÐPÐPÐPå6KÐ!Ð"2Ñ3ð+	@Ý‘X”XˆFõ .Ð9OÐPÑPÔPˆIÝ-Ø#,ðñ ô ˆMð ×Ò }ÐÑ5Ô5Ð5ð ×0Ò0Ñ2Ô2ˆIð (¨
Ô3°LÔAÀ.ÔQˆOØ" 8Ô,¨WÔ5¸ÒAÐAÐAÐAð  )¨Ô0°Ô>¸|ÔLØô Ðð $ HÔ-¨gÔ6¸(ÒBÐBÐBÐBõ "Ô7¸	ÑBÔBˆLØÔ(Ô3Ð?Ð?Ð?ØÔ(Ô3Ô@ÐLÐLÐLàÔ%Ô0Ô=ÔDÔJÈhÒVÐVÐVÐVð  Ô$ \Ô2Ô=ÐIÐIÐIØÔ$ \Ô2Ô=ÔJÐVÐVÐVàÔ! ,Ô/Ô:ÔGÔNÔTØòð ð ð ð ð  Ð#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?ð =Ð<øÐÐ#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?Ð?Ð?s   ’EE6 Å6	E?c                 ó  — ddl m} t          |d<   	 t          ¦   «         }t          d¬¦  «        }t	          |d¬¦  «        }|                     |¬¦  «         |                     ¦   «         }|d	         d
         d         }|d         d         dk    sJ ‚|d         d         d
         d         }|d         d         dk    sJ ‚t          j        |¦  «        }|j        j	        €J ‚|j        j	        j
        €J ‚|j        j	        j
        j        j        dk    sJ ‚|j        d         j	        €J ‚|j        d         j	        j
        €J ‚|j        d         j	        j
        j        j        dk    sJ ‚	 d|v r|d= dS dS # d|v r|d= w xY w)zTTest that explicit space parameter overrides the embedding function's default space.r   ré   rO   Úoverride_testr¦   rV   ©r�   r–   r8   r_   rd   re   r5   r–   rn   r^   NrP  rQ  s	            r!   Ú8test_explicit_space_overrides_embedding_function_defaultzFTestNewSchema.test_explicit_space_overrides_embedding_function_defaultõ  sü  € ð 	QÐPÐPÐPÐPÐPå6KÐ!Ð"2Ñ3ð-	@Ý‘X”XˆFõ
 .¸ÐIÑIÔIˆIÝ-Ø#,Øðñ ô ˆMð ×Ò }ÐÑ5Ô5Ð5ð ×0Ò0Ñ2Ô2ˆIð (¨
Ô3°LÔAÀ.ÔQˆOà Ô)¨'Ô2°dÒ:Ð:Ð:Ð:ð  )¨Ô0°Ô>¸|ÔLØô Ðð ! Ô*¨7Ô3°tÒ;Ð;Ð;Ð;õ "Ô7¸	ÑBÔBˆLØÔ(Ô3Ð?Ð?Ð?ØÔ(Ô3Ô@ÐLÐLÐLØÔ(Ô3Ô@ÔGÔMÐQUÒUÐUÐUÐUàÔ$ \Ô2Ô=ÐIÐIÐIØÔ$ \Ô2Ô=ÔJÐVÐVÐVàÔ! ,Ô/Ô:ÔGÔNÔTØòð ð ð ð ð  Ð#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?ð =Ð<øÐÐ#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?Ð?Ð?s   ’EE7 Å7	F c                 ó”  — t          ¦   «         }t          dd¬¦  «        }|                     |¬¦  «         |                     ¦   «         }|d         d         d         }|d         d	         dk    sJ ‚|d         d
         d         dk    sJ ‚|d         d         d         d         }|d         d	         dk    sJ ‚|d         d
         d         dk    sJ ‚t          j        |¦  «        }|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        j	        dk    sJ ‚|j        j        j        j        j
        	 �J ‚dS )zITest space handling when no embedding function is provided (legacy mode).NrW   rU  r8   r_   rd   re   r5   r–   r�   rÒ   rä   rn   r^   )r   r   rx   rÙ   rÜ   r_   rd   re   r5   r–   r�   )r    rr   r    rÞ   r±   r²   rá   s          r!   Ú/test_space_inference_with_no_embedding_functionz=TestNewSchema.test_space_inference_with_no_embedding_function+	  s‚  € å‘”ˆõ *Ø#Øð
ñ 
ô 
ˆð 	×Ò =ÐÑ1Ô1Ð1ð ×,Ò,Ñ.Ô.ˆ	ð $ JÔ/°Ô=¸nÔMˆØ˜xÔ(¨Ô1°TÒ9Ð9Ð9Ð9Ø˜xÔ(Ð)=Ô>¸vÔFÈ(ÒRÐRÐRÐRà$ VÔ,¨\Ô:¸<ÔHÈÔXÐØ Ô)¨'Ô2°dÒ:Ð:Ð:Ð:Ø Ô)Ð*>Ô?ÀÔGÈ8ÒSÐSÐSÐSõ Ô3°IÑ>Ô>ˆØÔ$Ô/Ð;Ð;Ð;ØÔ$Ô/Ô<ÐHÐHÐHØÔ$Ô/Ô<ÔCÔIÈTÒQÐQÐQÐQàÔ!Ô,Ô9Ô@ÔSØðð ð ð ð r#   c                 ó  — ddl m} t          |d<   	 t          ¦   «         }t          d¬¦  «        }t	          |¬¦  «        }|                     |¬¦  «         |                     ¦   «         }|d         d	         d
         d         d         dk    sJ ‚t          j        |¦  «        }|                     ¦   «         }|d         d	         d
         d         d         dk    sJ ‚t          j        |¦  «        }|                     ¦   «         }	|	d         d	         d
         d         d         dk    sJ ‚||fD ]D}
|
j        j	        €J ‚|
j        j	        j
        €J ‚|
j        j	        j
        j        j        dk    sJ ‚ŒE	 d|v r|d= dS dS # d|v r|d= w xY w)zQTest that inferred space remains stable across multiple serialization roundtrips.r   ré   rO   Úroundtrip_space_testr¦   rO  r8   r_   rd   re   r5   r–   rS   N)rð   rê   rA   r   r   rx   rÙ   rÜ   r_   rd   re   r5   r–   )r    rê   rÝ   rñ   r    r)  r*  r+  r,  r-  rr   s              r!   Ú(test_space_inference_multiple_roundtripsz6TestNewSchema.test_space_inference_multiple_roundtripsL	  s  € ð 	QÐPÐPÐPÐPÐPå6KÐ!Ð"2Ñ3ð)	@å‘x”xˆHÝ-Ð9OÐPÑPÔPˆIÝ-Ø#,ðñ ô ˆMð ×!Ò!¨Ð!Ñ7Ô7Ð7ð ×.Ò.Ñ0Ô0ˆEà�jÔ! ,Ô/°Ô?ÀÔIÈ'ÔRØòð ð ð õ Ô2°5Ñ9Ô9ˆGð ×-Ò-Ñ/Ô/ˆEà�jÔ! ,Ô/°Ô?ÀÔIÈ'ÔRØòð ð ð õ Ô2°5Ñ9Ô9ˆGð ×-Ò-Ñ/Ô/ˆEà�jÔ! ,Ô/°Ô?ÀÔIÈ'ÔRØòð ð ð ð
 # GÐ,ð Xð X�Ø”Ô1Ð=Ð=Ð=Ø”Ô1Ô>ÐJÐJÐJØ”Ô1Ô>ÔEÔKÈxÒWÐWÐWÐWÐWðXð  Ð#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?ð =Ð<øÐÐ#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?Ð?Ð?s   ’E#F Æ	F
c                 óT  — t          ¦   «         }t          dt          ¦   «         ¬¦  «        }|                     |d¬¦  «         d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        j        j        j	        dk    sJ ‚t          ¦   «         }|                     |d¬¦  «         d|j        v sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        j        j        j	        dk    sJ ‚dS )zZTest that each key override has its own independent config (no inheritance from defaults).Údefault_sourcer�   rD  rv   NTrE  )r   r   r   rx   rn   rf   rg   rb   r5   rp   r   r`   rc   )r    rr   r‘   rD  r’   rE  s         r!   Ú"test_keys_have_independent_configsz0TestNewSchema.test_keys_have_independent_configs~	  s{  € å‘”ˆõ 0Ø'Ý:Ñ<Ô<ð
ñ 
ô 
ˆð 	×Ò =°hÐÑ?Ô?Ð?ð ˜6œ;Ð&Ð&Ð&Ð&Ø”˜XÔ&ˆØÔ#Ð/Ð/Ð/ØÔ#Ô7ÐCÐCÐCØÔ#Ô7Ô?À4ÐGÐGÐGÐGàÔ Ô4Ô;ÔFØò ð  ð  ð  õ
 2Ñ3Ô3ˆØ×Ò =°hÐÑ?Ô?Ð?ð ˜6œ;Ð&Ð&Ð&Ð&Ø”˜XÔ&ˆØŒ}Ð(Ð(Ð(ØŒ}Ô2Ð>Ð>Ð>ØŒ}Ô2Ô:¸dÐBÐBÐBÐBð Ô Ô4Ô;ÔFØò ð  ð  ð  ð  ð  r#   c                 óŽ  — ddl m} t          |d<   	 t          ¦   «         }t          d¬¦  «        }t	          dd¬¦  «        }t          |d	|¬
¦  «        }|                     |¬¦  «         |j        d         j        j	        j
        j        }|€J ‚|j        dk    sJ ‚|j        dk    sJ ‚t          d¬¦  «        }t	          dd¬¦  «        }t          |d|¬
¦  «        }	|                     |	¬¦  «         |j        j        €J ‚|j        j        j	        €J ‚|j        j        j	        j
        j        dk    sJ ‚|j        j        j	        j
        j        €J ‚|j        j        j	        j
        j        j        dk    sJ ‚|j        j        j	        j
        j        j        dk    sJ ‚|j        d         j        €J ‚|j        d         j        j	        €J ‚|j        d         j        j	        j
        j        }
|
€J ‚|
j        dk    sJ ‚|
j        dk    sJ ‚|j        d         j        j	        j
        j        dk    sJ ‚	 d|v r|d= dS dS # d|v r|d= w xY w)zPTest that changes to global defaults don't affect already-created key overrides.r   ré   rO   Úinitial_modelr¦   r©   é   r  rS   rï   r8   r^   NÚupdated_modelr§   r¨   rV   )rð   rê   rA   r   r   r   rx   rn   rd   re   r5   r®   r«   r¬   r_   r–   )r    rê   rr   Úef1Úhnsw1Úvector_config1Úinitial_embedding_hnswÚef2Úhnsw2r¡   Úupdated_embedding_hnsws              r!   Ú:test_global_default_changes_dont_affect_existing_overrideszHTestNewSchema.test_global_default_changes_dont_affect_existing_overrides¥	  sÖ  € ð 	QÐPÐPÐPÐPÐPå6KÐ!Ð"2Ñ3ð8	@Ý‘X”XˆFõ (°?ÐCÑCÔCˆCÝ#°CÀrÐJÑJÔJˆEÝ.Ø#&¨h¸Uðñ ô ˆNð ×Ò ~ÐÑ6Ô6Ð6ð &,¤[Øô&äœ¤f¬Tð #ð *Ð5Ð5Ð5Ø)Ô9¸SÒ@Ð@Ð@Ð@Ø)Ô7¸2Ò=Ð=Ð=Ð=õ (°?ÐCÑCÔCˆCÝ#°CÀrÐJÑJÔJˆEÝ.Ø#&¨d¸ðñ ô ˆNð ×Ò ~ÐÑ6Ô6Ð6ð ”?Ô-Ð9Ð9Ð9Ø”?Ô-Ô:ÐFÐFÐFØ”?Ô-Ô:ÔAÔGÈ4ÒOÐOÐOÐOØ”?Ô-Ô:ÔAÔFÐRÐRÐRà”Ô*Ô7Ô>ÔCÔSØòð ð ð ð ”Ô*Ô7Ô>ÔCÔQÐUWÒWÐWÐWÐWð ”;˜|Ô,Ô7ÐCÐCÐCØ”;˜|Ô,Ô7ÔDÐPÐPÐPØ%+¤[Øô&äœ¤f¬Tð #ð *Ð5Ð5Ð5Ø)Ô9¸SÒ@Ð@Ð@Ð@Ø)Ô7¸2Ò=Ð=Ð=Ð=à”˜LÔ)Ô4ÔAÔHÔNÐRVÒVÐVÐVÐVÐVð
  Ð#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?ð =Ð<øÐÐ#<Ð<Ð<Ø-Ð.>Ð?Ð?Ð?Ð?Ð?s   ’HH; È;	Ic                 ó   — t          ¦   «         }|                     t          dt          ¦   «         ¬¦  «        d¬¦  «         |                     t	          ¦   «         d¬¦  «         |                     t	          ¦   «         d¬¦  «         |j        d         j        j        j        j	        dk    sJ ‚|j        d         j
        j        j        du sJ ‚|j        d         j
        j        j        du sJ ‚|                     t	          ¦   «         d¬¦  «         |j        d         j
        j        j        du sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        j        j        j	        dk    sJ ‚|j        d         }|j
        €J ‚|j
        j        €J ‚|j
        j        j        du sJ ‚|                     ¦   «         }t          j        |¦  «        }|j        d         j        j        j        j	        dk    sJ ‚|j        d         j
        j        j        du sJ ‚|j        d         j
        j        j        du sJ ‚d	S )
zBTest that modifying one key's overrides doesn't affect other keys.Úsource_ar�   Úkey_arv   Úkey_bÚkey_cTFN)r   rx   r   r   r   rn   rf   rg   r5   rp   r`   rc   rb   r‰   rÙ   rÜ   )r    rr   rm  ro  rÞ   rá   s         r!   Ú+test_key_specific_overrides_are_independentz9TestNewSchema.test_key_specific_overrides_are_independentæ	  s“  € å‘”ˆð 	×ÒÝ*Ø%Õ:UÑ:WÔ:Wðñ ô ð ð	 	ñ 	
ô 	
ð 	
ð 	×ÒÕ#<Ñ#>Ô#>ÀGÐÑLÔLÐLØ×ÒÕ#<Ñ#>Ô#>ÀGÐÑLÔLÐLð ŒK˜Ô Ô.ÔBÔIÔTØòð ð ð ð Œ{˜7Ô#Ô*Ô@ÔHÈDÐPÐPÐPÐPØŒ{˜7Ô#Ô*Ô@ÔHÈDÐPÐPÐPÐPð 	×ÒÕ#<Ñ#>Ô#>ÀGÐÑLÔLÐLð Œ{˜7Ô#Ô*Ô@ÔHÈEÐQÐQÐQÐQð ”˜GÔ$ˆØÔ"Ð.Ð.Ð.ØÔ"Ô6ÐBÐBÐBØÔ"Ô6Ô>À$ÐFÐFÐFÐFØÔ"Ô6Ô=ÔHÈJÒVÐVÐVÐVà”˜GÔ$ˆØŒ|Ð'Ð'Ð'ØŒ|Ô1Ð=Ð=Ð=ØŒ|Ô1Ô9¸TÐAÐAÐAÐAð ×,Ò,Ñ.Ô.ˆ	ÝÔ3°IÑ>Ô>ˆð ÔØôäÔ/´´zØòð ð ð ð
 Ô  Ô)Ô0ÔFÔNÐRWÐWÐWÐWÐWØÔ  Ô)Ô0ÔFÔNÐRVÐVÐVÐVÐVÐVÐVr#   c                 óT  — t          ¦   «         }|j        j        €J ‚|j        j        j        €J ‚|j        j        j        j        du sJ ‚|                     t          ¦   «         ¬¦  «         |j        j        j        j        du sJ ‚|                     t          ¦   «         d¬¦  «         |                     t          ¦   «         d¬¦  «         |j        j        j        j        du sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚| 	                    ¦   «         }d|d         v sJ ‚d|d         v sJ ‚d	|d         v sJ ‚d
|d         v sJ ‚d|d         vsJ ‚dS )zDTest disabling an index globally, then enabling it on specific keys.NTr8   FÚimportant_fieldrv   Úsearchable_fieldrn   r]   r^   Úother_field)
r   r_   r`   rc   rb   r‰   r   rx   rn   rÙ   )r    rr   Ú	importantÚ
searchablerÞ   s        r!   Ú+test_global_default_disable_then_key_enablez9TestNewSchema.test_global_default_disable_then_key_enable
  s	  € å‘”ˆð ŒÔ%Ð1Ð1Ð1ØŒÔ%Ô;ÐGÐGÐGØŒÔ%Ô;ÔCÀtÐKÐKÐKÐKð 	×ÒÕ#<Ñ#>Ô#>ÐÑ?Ô?Ð?ØŒÔ%Ô;ÔCÀuÐLÐLÐLÐLð 	×ÒÕ#<Ñ#>Ô#>ÐDUÐÑVÔVÐVØ×ÒÕ#<Ñ#>Ô#>ÐDVÐÑWÔWÐWð ŒÔ%Ô;ÔCÀuÐLÐLÐLÐLð ”KÐ 1Ô2ˆ	ØÔÐ+Ð+Ð+ØÔÔ5ÐAÐAÐAØÔÔ5Ô=ÀÐEÐEÐEÐEà”[Ð!3Ô4ˆ
ØÔ Ð,Ð,Ð,ØÔ Ô6ÐBÐBÐBØÔ Ô6Ô>À$ÐFÐFÐFÐFð ×,Ò,Ñ.Ô.ˆ	ð ! I¨fÔ$5Ð5Ð5Ð5Ð5Ø! Y¨vÔ%6Ð6Ð6Ð6Ð6Ø˜i¨Ô/Ð/Ð/Ð/Ð/Ø˜y¨Ô0Ð0Ð0Ð0Ð0ð  I¨fÔ$5Ð5Ð5Ð5Ð5Ð5Ð5r#   c                 óœ  — t          ¦   «         }|                     t          dt          ¦   «         ¬¦  «        d¬¦  «         |j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        �J ‚|j	        �J ‚|j
        �J ‚|j        �J ‚|j        �J ‚|                     ¦   «         }|d         d         }d|v sJ ‚d	|vsJ ‚d
|vsJ ‚d|vsJ ‚d|vsJ ‚d|vsJ ‚t          j        |¦  «        }|j        d         }|j        €J ‚|j        j        €J ‚|j        j        j        du sJ ‚|j        �J ‚|j	        �J ‚dS )z\Test that when you override one aspect of a value type, other indexes still follow defaults.Ú	my_sourcer�   Úmulti_index_fieldrv   NTrn   rf   r`   rÖ   r×   rØ   rd   )r   rx   r   r   rn   rf   rg   rb   r`   rh   rj   rl   rd   rÙ   rÜ   )r    rr   ÚfieldrÞ   Ú
field_jsonrá   Ú	des_fields          r!   Ú)test_partial_override_fills_from_defaultsz7TestNewSchema.test_partial_override_fills_from_defaultsH
  sñ  € å‘”ˆð 	×ÒÝ*Ø&Õ;VÑ;XÔ;Xðñ ô ð $ð	 	ñ 	
ô 	
ð 	
ð ”Ð/Ô0ˆð Ô"Ð.Ð.Ð.ØÔ"Ô6ÐBÐBÐBØÔ"Ô6Ô>À$ÐFÐFÐFÐFð Œ|Ð#Ð#Ð#ØŒÐ&Ð&Ð&ØÔ Ð(Ð(Ð(ØŒ}Ð$Ð$Ð$ØÔÐ'Ð'Ð'ð ×,Ò,Ñ.Ô.ˆ	Ø˜vÔ&Ð':Ô;ˆ
ð  *Ð,Ð,Ð,Ð,Ø˜zÐ)Ð)Ð)Ð)Ø˜JÐ&Ð&Ð&Ð&Ø˜jÐ(Ð(Ð(Ð(Ø˜ZÐ'Ð'Ð'Ð'Ø :Ð-Ð-Ð-Ð-õ Ô3°IÑ>Ô>ˆØ Ô%Ð&9Ô:ˆ	ð Ô&Ð2Ð2Ð2ØÔ&Ô:ÐFÐFÐFØÔ&Ô:ÔBÀdÐJÐJÐJÐJð ÔÐ'Ð'Ð'ØÔ"Ð*Ð*Ð*Ð*Ð*r#   c                 óþ   — t          j        d¦  «        }|j        t          j        k    sJ ‚|j        dk    sJ ‚|                     ¦   «         du sJ ‚t          j        d¦  «        }|                     ¦   «         du sJ ‚dS )z(Test basic CMEK creation and validation.zRprojects/test-project/locations/us-central1/keyRings/test-ring/cryptoKeys/test-keyTzinvalid-formatFN)r   ÚgcpÚproviderr   ÚGCPÚresourceÚvalidate_pattern)r    ÚcmekÚinvalid_cmeks      r!   Útest_cmek_basic_creationz&TestNewSchema.test_cmek_basic_creation|
  s¤   € õ ŒxØ`ñ
ô 
ˆð Œ}¥Ô 0Ò0Ð0Ð0Ð0àŒMØcòdð dð dð dð
 ×$Ò$Ñ&Ô&¨$Ð.Ð.Ð.Ð.õ ”xÐ 0Ñ1Ô1ˆØ×,Ò,Ñ.Ô.°%Ð7Ð7Ð7Ð7Ð7Ð7r#   c                 ó  — t          j        d¦  «        }|                     ¦   «         }|ddik    sJ ‚d|v sJ ‚|d         dk    sJ ‚t          j        |¦  «        }|j        t
          j        k    sJ ‚|j        |j        k    sJ ‚dS )z,Test CMEK serialization and deserialization.ú.projects/p/locations/l/keyRings/r/cryptoKeys/kr€  N)r   r€  Úto_dictÚ	from_dictr�  r   r‚  rƒ  )r    r…  Ú	cmek_dictÚrestoreds       r!   Útest_cmek_serializationz%TestNewSchema.test_cmek_serialization�
  s¤   € åŒxÐHÑIÔIˆð —L’L‘N”Nˆ	Ø˜UÐ$TÐUÒUÐUÐUÐUØ˜	Ð!Ð!Ð!Ð!Ø˜ÔÐ#SÒSÐSÐSÐSõ ”> )Ñ,Ô,ˆØÔ ¥LÔ$4Ò4Ð4Ð4Ð4ØÔ  D¤MÒ1Ð1Ð1Ð1Ð1Ð1r#   c                 óÜ  — t          ¦   «         }|j        �J ‚t          j        d¦  «        }|                     |¦  «        }||u sJ ‚|j        €J ‚|j        j        t          j        k    sJ ‚|j        j        dk    sJ ‚|                     d¦  «         |j        �J ‚t          j        d¦  «        }t          ¦   «                              |¦  «        }|j        €J ‚|j        j        dk    sJ ‚dS )z:Test CMEK integration with Schema using set_cmek() method.Nz7projects/test/locations/us/keyRings/ring/cryptoKeys/keyr‰  )	r   r…  r   r€  Úset_cmekr�  r   r‚  rƒ  )r    rr   r…  rz   Úcmek2r,  s         r!   Útest_cmek_in_schemaz!TestNewSchema.test_cmek_in_schemaž
  s  € å‘”ˆð Œ{Ð"Ð"Ð"õ ŒxÐQÑRÔRˆØ—’ Ñ&Ô&ˆð ˜ÐÐÐÐð Œ{Ð&Ð&Ð&ØŒ{Ô#¥|Ô'7Ò7Ð7Ð7Ð7àŒKÔ ØHòIð Ið Ið Ið
 	�Š˜ÑÔÐØŒ{Ð"Ð"Ð"õ ”ÐIÑJÔJˆÝ‘(”(×#Ò# EÑ*Ô*ˆØŒ|Ð'Ð'Ð'ØŒ|Ô$Ð(XÒXÐXÐXÐXÐXÐXr#   c                 ó¤  — t          j        d¦  «        }t          ¦   «                              |¦  «        }|                     ¦   «         }d|v sJ ‚|d         ddik    sJ ‚d|d         v sJ ‚|d         d         dk    sJ ‚t          j        |¦  «        }|j        €J ‚|j        j        t          j	        k    sJ ‚|j        j
        |j
        k    sJ ‚dS )z$Test Schema serialization with CMEK.r‰  r…  r€  N)r   r€  r   r�  rÙ   rÜ   r…  r�  r   r‚  rƒ  )r    r…  rr   rÞ   rá   s        r!   Útest_cmek_schema_serializationz,TestNewSchema.test_cmek_schema_serialization¾
  s  € åŒxÐHÑIÔIˆÝ‘”×"Ò" 4Ñ(Ô(ˆð ×,Ò,Ñ.Ô.ˆ	ð ˜Ð"Ð"Ð"Ð"Ø˜Ô ØÐCð%
ò 
ð 
ð 
ð 
ð ˜	 &Ô)Ð)Ð)Ð)Ð)à�fÔ˜eÔ$Ð(XÒXÐXÐXÐXõ Ô3°IÑ>Ô>ˆØÔ Ð,Ð,Ð,ØÔ Ô)­\Ô-=Ò=Ð=Ð=Ð=ØÔ Ô)¨T¬]Ò:Ð:Ð:Ð:Ð:Ð:r#   c                 ó�   — t          ¦   «         }|                     ¦   «         }d|vsJ ‚t          j        |¦  «        }|j        �J ‚dS )z@Test Schema serialization without CMEK (backward compatibility).r…  N)r   rÙ   rÜ   r…  )r    rr   rÞ   rá   s       r!   Ú+test_cmek_schema_without_cmek_serializationz9TestNewSchema.test_cmek_schema_without_cmek_serializationÖ
  sX   € å‘”ˆð ×,Ò,Ñ.Ô.ˆ	ð ˜YÐ&Ð&Ð&Ð&õ Ô3°IÑ>Ô>ˆØÔ Ð(Ð(Ð(Ð(Ð(r#   c                 ó8  — t          j        t          d¬¦  «        5  t          j        i i i dœ¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        i i ddidœ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zCTest that invalid CMEK data raises a warning and sets cmek to None.z,Unsupported or missing CMEK provider in datar˜   )r_   rn   r…  NÚinvalid_providerzsome-resource)r�   rž   rŸ   r   rÜ   r3   s    r!   Ú!test_cmek_invalid_deserializationz/TestNewSchema.test_cmek_invalid_deserializationå
  sT  € åŒ]ÝÐLð
ñ 
ô 
ð 	Sð 	Sõ Ô(°bÀ"ÈbÐ)QÐ)QÑRÔRÐRð	Sð 	Sð 	Sñ 	Sô 	Sð 	Sð 	Sð 	Sð 	Sð 	Sð 	Søøøð 	Sð 	Sð 	Sð 	Sõ
 Œ]ÝÐLð
ñ 
ô 
ð 		ð 		õ Ô(à "ØØ/°ÐAðð ñô ð ð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 		ð 		s#   œAÁAÁAÁ'BÂBÂB©r%   N).r:   r;   r<   r=   rs   r{   r…   rŠ   r“   r£   r³   r¹   r»   r¿   rÅ   rÈ   rË   rÐ   râ   rç   rô   rý   r  r  r  r   r"  r1  rB  rH  rL  rR  rV  rX  r[  r^  rj  rp  rw  r~  r‡  rŽ  r’  r”  r–  r™  r/   r#   r!   rZ   rZ   L   sø  € € € € € Ø.Ð.ðG
ð G
ð G
ð G
ðR+
ð +
ð +
ð +
ðZ1
ð 1
ð 1
ð 1
ðf(
ð (
ð (
ð (
ðTc
ð c
ð c
ð c
ðJ5Ið 5Ið 5Ið 5Iðn1
ð 1
ð 1
ð 1
ðf&Uð &Uð &Uð &UðPHð Hð Hð Hð<.ð .ð .ð .ð #Nð #Nð #Nð #NðJ
ð 
ð 
ð 
ð4%Qð %Qð %Qð %QðN)@ð )@ð )@ð )@ðVj
ð j
ð j
ð j
ðXG
ð G
ð G
ð G
ðRr@ð r@ð r@ð r@ðhI@ð I@ð I@ð I@ðVW=ð W=ð W=ð W=ðr
2Lð 2Lð 2Lð 2Lðh&Lð &Lð &Lð &LðP?Gð ?Gð ?Gð ?GðB*1ð *1ð *1ð *1ðX\@ð \@ð \@ð \@ð|JJð JJð JJð JJðX+Dð +Dð +Dð +DðZ:
ð :
ð :
ð :
ðx2@ð 2@ð 2@ð 2@ðh4@ð 4@ð 4@ð 4@ðl
ð 
ð 
ð 
ðB0@ð 0@ð 0@ð 0@ðd%
ð %
ð %
ð %
ðN?@ð ?@ð ?@ð ?@ðB4Wð 4Wð 4Wð 4Wðl*6ð *6ð *6ð *6ðX2+ð 2+ð 2+ð 2+ðh8ð 8ð 8ð 8ð&2ð 2ð 2ð 2ðYð Yð Yð Yð@;ð ;ð ;ð ;ð0)ð )ð )ð )ðð ð ð ð ð r#   rZ   r%   c                  óÒ   — t          ¦   «         } t          ¦   «         }t          j        t          d¬¦  «        5  |                      |¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zITest that sparse vector index cannot be created globally (without a key).z5Sparse vector index must be created on a specific keyr˜   r8   N)r   r   r�   rž   rŸ   rx   ©rr   r‘   s     r!   Ú-test_sparse_vector_cannot_be_created_globallyr�  ø
  s²   € å‰XŒX€FÝ+Ñ-Ô-€Mõ 
ŒÝÐQð
ñ 
ô 
ð 2ð 2ð 	×Ò =ÐÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   ¸AÁA Á#A c                  óœ  — t          ¦   «         } t          ¦   «         }|                      |d¬¦  «         | j        d         j        €J ‚| j        d         j        j        €J ‚| j        d         j        j        j        du sJ ‚t          j        t          d¬¦  «        5  |  
                    |d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zITest that sparse vector index cannot be deleted (temporarily disallowed).r½   rv   NTz7Deleting sparse vector index is not currently supportedr˜   )r   r   rx   rn   rf   rg   rb   r�   rž   rŸ   r‰   rœ  s     r!   Ú$test_sparse_vector_cannot_be_deletedrŸ    s3  € å‰XŒX€FÝ+Ñ-Ô-€Mð ×Ò˜}°(ÐÑ;Ô;Ð;ØŒ;�xÔ Ô.Ð:Ð:Ð:ØŒ;�xÔ Ô.ÔBÐNÐNÐNØŒ;�xÔ Ô.ÔBÔJÈdÐRÐRÐRÐRõ 
ŒÝÐSð
ñ 
ô 
ð @ð @ð 	×Ò =°hÐÑ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @s   ÂCÃCÃCc                  ó
  — t          ¦   «         } t          ¦   «         }|                      |d¬¦  «         d| j        v sJ ‚| j        d         j        €J ‚| j        d         j        j        €J ‚| j        d         j        j        j        du sJ ‚t          ¦   «         }|                      |t          d¦  «        ¬¦  «         d| j        v sJ ‚| j        d         j	        €J ‚| j        d         j	        j
        €J ‚| j        d         j	        j
        j        du sJ ‚t          ¦   «         }|                     |d¬¦  «         t          ¦   «         }|                     |t          d¦  «        ¬¦  «         |j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        |j        d         j        j        j        k    sJ ‚dS )zLTest that create_index accepts both str and Key types for the key parameter.Útest_field_strrv   NTÚtest_field_keyÚ
same_field)r   r   rx   rn   r`   rc   rb   r   r   rh   ri   ©rr   r’   rÎ   r,  r.  s        r!   Ú"test_create_index_accepts_key_typer¥    s+  € å‰XŒX€Fõ .Ñ/Ô/€MØ
×Ò˜}Ð2BÐÑCÔCÐCð ˜vœ{Ð*Ð*Ð*Ð*ØŒ;Ð'Ô(Ô/Ð;Ð;Ð;ØŒ;Ð'Ô(Ô/ÔEÐQÐQÐQØŒ;Ð'Ô(Ô/ÔEÔMÐQUÐUÐUÐUÐUõ (Ñ)Ô)€JØ
×Ò˜z­sÐ3CÑ/DÔ/DÐÑEÔEÐEð ˜vœ{Ð*Ð*Ð*Ð*ØŒ;Ð'Ô(Ô2Ð>Ð>Ð>ØŒ;Ð'Ô(Ô2ÔEÐQÐQÐQØŒ;Ð'Ô(Ô2ÔEÔMÐQUÐUÐUÐUÐUõ ‰hŒh€GØ×Ò °<ÐÑ@Ô@Ð@å‰hŒh€GØ×Ò µ3°|Ñ3DÔ3DÐÑEÔEÐEð Œ<˜Ô%Ô,Ð8Ð8Ð8ØŒ<˜Ô%Ô,ÔBÐNÐNÐNØŒ<˜Ô%Ô,Ð8Ð8Ð8ØŒ<˜Ô%Ô,ÔBÐNÐNÐNàŒ�\Ô"Ô)Ô?ÔGØŒ<˜Ô%Ô,ÔBÔJò	Kð 	Kð 	Kð 	Kð 	Kð 	Kr#   c                  ó
  — t          ¦   «         } t          ¦   «         }t          ¦   «         }|                      |d¬¦  «         d| j        v sJ ‚| j        d         j        €J ‚| j        d         j        j        €J ‚| j        d         j        j        j        du sJ ‚|                      |t          d¦  «        ¬¦  «         d| j        v sJ ‚| j        d         j	        €J ‚| j        d         j	        j
        €J ‚| j        d         j	        j
        j        du sJ ‚t          ¦   «         }|                     |d¬¦  «         t          ¦   «         }|                     |t          d¦  «        ¬¦  «         |j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        €J ‚|j        d         j        j        €J ‚|j        d         j        j        j        |j        d         j        j        j        k    sJ ‚dS )zLTest that delete_index accepts both str and Key types for the key parameter.r¡  rv   NFr¢  r£  )r   r   r   r‰   rn   r`   rc   rb   r   rh   ri   r¤  s        r!   Ú"test_delete_index_accepts_key_typer§  @  s-  € å‰XŒX€Fõ .Ñ/Ô/€MÝ'Ñ)Ô)€Jð ×Ò˜}Ð2BÐÑCÔCÐCð ˜vœ{Ð*Ð*Ð*Ð*ØŒ;Ð'Ô(Ô/Ð;Ð;Ð;ØŒ;Ð'Ô(Ô/ÔEÐQÐQÐQØŒ;Ð'Ô(Ô/ÔEÔMÐQVÐVÐVÐVÐVð ×Ò˜z­sÐ3CÑ/DÔ/DÐÑEÔEÐEð ˜vœ{Ð*Ð*Ð*Ð*ØŒ;Ð'Ô(Ô2Ð>Ð>Ð>ØŒ;Ð'Ô(Ô2ÔEÐQÐQÐQØŒ;Ð'Ô(Ô2ÔEÔMÐQVÐVÐVÐVÐVõ ‰hŒh€GØ×Ò °<ÐÑ@Ô@Ð@å‰hŒh€GØ×Ò µ3°|Ñ3DÔ3DÐÑEÔEÐEð Œ<˜Ô%Ô,Ð8Ð8Ð8ØŒ<˜Ô%Ô,ÔBÐNÐNÐNØŒ<˜Ô%Ô,Ð8Ð8Ð8ØŒ<˜Ô%Ô,ÔBÐNÐNÐNàŒ�\Ô"Ô)Ô?ÔGØŒ<˜Ô%Ô,ÔBÔJò	Kð 	Kð 	Kð 	Kð 	Kð 	Kr#   c                  óf  — t          ¦   «         } t          ¦   «         }t          j        t          d¬¦  «        5  |                      |t          j        ¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      |t          j        ¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      |t          d	¦  «        ¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )
zPTest that create_index rejects special keys like Key.DOCUMENT and Key.EMBEDDING.r›   r˜   rv   Nrœ   r]   úkey cannot begin with '#'ú#custom_keyú#custom)	r   r   r�   rž   rŸ   rx   r   ÚDOCUMENTÚ	EMBEDDING©rr   r’   s     r!   Ú&test_create_index_rejects_special_keysr¯  l  s@  € å‰XŒX€FÝ-Ñ/Ô/€Mõ 
ŒÝÐJð
ñ 
ô 
ð Dð Dð 	×Ò =µc´lÐÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ 
ŒÝÐKð
ñ 
ô 
ð Eð Eð 	×Ò =µc´mÐÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ 
ŒÝÐJð
ñ 
ô 
ð Cð Cð 	×Ò =°kÐÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cõ 
Œ•zÐ)DÐ	EÑ	EÔ	Eð Eð EØ×Ò =°mÐÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ 
Œ•zÐ)DÐ	EÑ	EÔ	Eð Fð FØ×Ò =µc¸)±n´nÐÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð FóY   ¸"A&Á&A*Á-A*Â"B:Â:B>ÃB>Ã DÄDÄDÄ*EÅEÅEÅ4%F&Æ&F*Æ-F*c                  óf  — t          ¦   «         } t          ¦   «         }t          j        t          d¬¦  «        5  |                      |t          j        ¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      |t          j        ¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      |d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      |t          d	¦  «        ¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )
zPTest that delete_index rejects special keys like Key.DOCUMENT and Key.EMBEDDING.z.Cannot delete index on special key '#document'r˜   rv   NzCannot modify #embeddingr^   r©  rª  r«  )	r   r   r�   rž   rŸ   r‰   r   r¬  r­  r®  s     r!   Ú&test_delete_index_rejects_special_keysr²  Œ  s.  € å‰XŒX€FÝ-Ñ/Ô/€Mõ 
ŒÝÐJð
ñ 
ô 
ð Dð Dð 	×Ò =µc´lÐÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ 
Œ•zÐ)CÐ	DÑ	DÔ	Dð Eð EØ×Ò =µc´mÐÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ 
Œ•zÐ)CÐ	DÑ	DÔ	Dð Dð DØ×Ò =°lÐÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ 
Œ•zÐ)DÐ	EÑ	EÔ	Eð Eð EØ×Ò =°mÐÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ 
Œ•zÐ)DÐ	EÑ	EÔ	Eð Fð FØ×Ò =µc¸)±n´nÐÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fr°  c                  óò  — t          d¬¦  «        } | j        dk    sJ ‚t          | j        t          ¦  «        sJ ‚t          t	          d¦  «        ¬¦  «        }|j        dk    sJ ‚t          |j        t          ¦  «        sJ ‚t          t          j        ¬¦  «        }|j        dk    sJ ‚t          |j        t          ¦  «        sJ ‚t          d¬¦  «        }t          t	          d¦  «        ¬¦  «        }|j        |j        k    sJ ‚t          d¬¦  «        }|j        �J ‚t          t	          d¦  «        ¬¦  «        }|                     ¦   «         }|d         dk    sJ ‚t          |d         t          ¦  «        sJ ‚dS )zFTest that VectorIndexConfig.source_key accepts both str and Key types.Úmy_field©rp   r]   ÚtestNÚserialize_testrp   )r   rp   rÚ   r>   r   r¬  Ú
model_dump©Úconfig1Úconfig2Úconfig3Úconfig4Úconfig5Úconfig6Úconfig7Úconfig_dicts           r!   Ú4test_vector_index_config_source_key_accepts_key_typerÂ  ¨  s‹  € õ  ¨:Ð6Ñ6Ô6€GØÔ Ò+Ð+Ð+Ð+Ý�gÔ(­#Ñ.Ô.Ð.Ð.Ð.õ  ­3¨z©?¬?Ð;Ñ;Ô;€GØÔ Ò+Ð+Ð+Ð+Ý�gÔ(­#Ñ.Ô.Ð.Ð.Ð.õ  ­3¬<Ð8Ñ8Ô8€GØÔ Ò,Ð,Ð,Ð,Ý�gÔ(­#Ñ.Ô.Ð.Ð.Ð.õ  ¨6Ð2Ñ2Ô2€GÝ­3¨v©;¬;Ð7Ñ7Ô7€GØÔ Ô!3Ò3Ð3Ð3Ð3õ  ¨4Ð0Ñ0Ô0€GØÔÐ%Ð%Ð%õ  ­3Ð/?Ñ+@Ô+@ÐAÑAÔA€GØ×$Ò$Ñ&Ô&€KØ�|Ô$Ð(8Ò8Ð8Ð8Ð8Ý�k ,Ô/µÑ5Ô5Ð5Ð5Ð5Ð5Ð5r#   c                  óò  — t          d¬¦  «        } | j        dk    sJ ‚t          | j        t          ¦  «        sJ ‚t          t	          d¦  «        ¬¦  «        }|j        dk    sJ ‚t          |j        t          ¦  «        sJ ‚t          t          j        ¬¦  «        }|j        dk    sJ ‚t          |j        t          ¦  «        sJ ‚t          d¬¦  «        }t          t	          d¦  «        ¬¦  «        }|j        |j        k    sJ ‚t          d¬¦  «        }|j        �J ‚t          t	          d¦  «        ¬¦  «        }|                     ¦   «         }|d         dk    sJ ‚t          |d         t          ¦  «        sJ ‚dS )zLTest that SparseVectorIndexConfig.source_key accepts both str and Key types.r´  rµ  r]   r¶  Nr·  rp   )r   rp   rÚ   r>   r   r¬  r¸  r¹  s           r!   Ú;test_sparse_vector_index_config_source_key_accepts_key_typerÄ  É  s‹  € õ &°Ð<Ñ<Ô<€GØÔ Ò+Ð+Ð+Ð+Ý�gÔ(­#Ñ.Ô.Ð.Ð.Ð.õ &µ°Z±´ÐAÑAÔA€GØÔ Ò+Ð+Ð+Ð+Ý�gÔ(­#Ñ.Ô.Ð.Ð.Ð.õ &µ´Ð>Ñ>Ô>€GØÔ Ò,Ð,Ð,Ð,Ý�gÔ(­#Ñ.Ô.Ð.Ð.Ð.õ &°Ð8Ñ8Ô8€GÝ%µ°V±´Ð=Ñ=Ô=€GØÔ Ô!3Ò3Ð3Ð3Ð3õ &°Ð6Ñ6Ô6€GØÔÐ%Ð%Ð%õ &µÐ5EÑ1FÔ1FÐGÑGÔG€GØ×$Ò$Ñ&Ô&€KØ�|Ô$Ð(8Ò8Ð8Ð8Ð8Ý�k ,Ô/µÑ5Ô5Ð5Ð5Ð5Ð5Ð5r#   c                  ó(  — t          j        t          d¬¦  «        5  t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          ddg¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          ddi¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z@Test that config validators reject invalid types for source_key.zsource_key must be str or Keyr˜   é{   rµ  NÚnotÚvalid)r�   rž   rŸ   r   r   r/   r#   r!   Ú,test_config_source_key_rejects_invalid_typesrÉ  ê  s  € õ 
Œ•zÐ)HÐ	IÑ	IÔ	Ið *ð *Ý SÐ)Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *õ 
Œ•zÐ)HÐ	IÑ	IÔ	Ið 7ð 7Ý e¨WÐ%5Ð6Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7õ 
Œ•zÐ)HÐ	IÑ	IÔ	Ið 0ð 0Ý¨3Ð/Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ 
Œ•zÐ)HÐ	IÑ	IÔ	Ið =ð =Ý¨E°7Ð+;Ð<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =sC   œ9¹=Á =ÁA>Á>BÂBÂ$CÃCÃCÃ'DÄDÄDc                  óâ  — t          d¬¦  «        } | j        dk    sJ ‚t          t          j        ¬¦  «        }|j        dk    sJ ‚t	          j        t          d¬¦  «        5  t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t	          j        t          d¬¦  «        5  t          t          j        ¬¦  «         ddd¦  «         n# 1 swxY w Y   t	          j        t          d¬¦  «        5  t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t	          j        t          d¬¦  «        5  t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t	          j        t          d¬¦  «        5  t          d	¬¦  «         ddd¦  «         n# 1 swxY w Y   t          d
¬¦  «        }|j        d
k    sJ ‚t          d¬¦  «        }|j        dk    sJ ‚t          t          j        ¬¦  «        }|j        dk    sJ ‚t	          j        t          d¬¦  «        5  t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t	          j        t          d¬¦  «        5  t          t          j        ¬¦  «         ddd¦  «         n# 1 swxY w Y   t	          j        t          d¬¦  «        5  t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          d
¬¦  «        }|j        d
k    sJ ‚dS )zGTest that source_key only allows #document, rejects other special keys.r]   rµ  z source_key cannot begin with '#'r˜   r^   Nz	#metadataz#scorer«  r´  )	r   rp   r   r¬  r�   rž   rŸ   r­  r   )rº  r»  r¼  r½  r¾  r¿  s         r!   Ú-test_config_source_key_validates_special_keysrË  û  sä  € õ  ¨;Ð7Ñ7Ô7€GØÔ Ò,Ð,Ð,Ð,õ  ­3¬<Ð8Ñ8Ô8€GØÔ Ò,Ð,Ð,Ð,õ 
Œ•zÐ)KÐ	LÑ	LÔ	Lð 3ð 3Ý \Ð2Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3õ 
Œ•zÐ)KÐ	LÑ	LÔ	Lð 4ð 4Ý¥S¤]Ð3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ 
Œ•zÐ)KÐ	LÑ	LÔ	Lð 2ð 2Ý [Ð1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ 
Œ•zÐ)KÐ	LÑ	LÔ	Lð /ð /Ý XÐ.Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /õ 
Œ•zÐ)KÐ	LÑ	LÔ	Lð 0ð 0Ý YÐ/Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ  ¨:Ð6Ñ6Ô6€GØÔ Ò+Ð+Ð+Ð+õ &°Ð=Ñ=Ô=€GØÔ Ò,Ð,Ð,Ð,õ &µ´Ð>Ñ>Ô>€GØÔ Ò,Ð,Ð,Ð,õ 
Œ•zÐ)KÐ	LÑ	LÔ	Lð 9ð 9Ý¨<Ð8Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9õ 
Œ•zÐ)KÐ	LÑ	LÔ	Lð :ð :Ý­3¬=Ð9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :õ 
Œ•zÐ)KÐ	LÑ	LÔ	Lð 8ð 8Ý¨;Ð7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8õ &°Ð<Ñ<Ô<€GØÔ Ò+Ð+Ð+Ð+Ð+Ð+s�   Á A=Á=BÂBÂ#C
Ã
CÃCÃ0DÄDÄDÄ3EÅEÅEÅ6FÆFÆFÈH7È7H;È>H;ÉJÊJÊJÊ*KËKËKc                  óV  — t          ¦   «         } t          j        t          ¦  «        5 }|                      dt          d¬¦  «        ¬¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d|                     ¦   «         v sJ ‚d|                     ¦   «         v sJ ‚dS )zkTest that SparseVectorIndexConfig raises ValueError when source_key is provided without embedding_function.Úinvalid_sparser  rµ  )rw   r5   Nrp   r�   )	r   r�   rž   rŸ   rx   r   r>   ÚvalueÚlower)rr   Úexc_infoÚ	error_msgs      r!   Ú5test_sparse_vector_config_requires_ef_with_source_keyrÒ  8  sñ   € å‰XŒX€Fõ 
Œ•zÑ	"Ô	"ð 
 hØ×ÒØ Ý*Ø'ðñ ô ð 	ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ �H”NÑ#Ô#€IØ˜9Ÿ?š?Ñ,Ô,Ð,Ð,Ð,Ð,Ø 9§?¢?Ñ#4Ô#4Ð4Ð4Ð4Ð4Ð4Ð4s   ¨&AÁAÁ!Ac            	      ó€  — t          j        t          t          f¦  «        5 } t	          t
          j        ¬¦  «         ddd¦  «         n# 1 swxY w Y   t          | j        ¦  «        }d| 	                    ¦   «         v sJ ‚d| 	                    ¦   «         v s.d| 	                    ¦   «         v sd| 	                    ¦   «         v sJ ‚t          j        t          t          f¦  «        5 } t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          | j        ¦  «        }d	| 	                    ¦   «         v sJ ‚d| 	                    ¦   «         v sd| 	                    ¦   «         v sJ ‚t          j        t          t          f¦  «        5 } t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          | j        ¦  «        }d	| 	                    ¦   «         v sJ ‚d| 	                    ¦   «         v sd| 	                    ¦   «         v sJ ‚t          j        t          t          f¦  «        5 } t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          | j        ¦  «        }d	| 	                    ¦   «         v sJ ‚d| 	                    ¦   «         v sd| 	                    ¦   «         v sJ ‚t          j        t          t          f¦  «        5 } t          d
¬¦  «         ddd¦  «         n# 1 swxY w Y   t          | j        ¦  «        }d	| 	                    ¦   «         v sJ ‚d| 	                    ¦   «         v sd| 	                    ¦   «         v sJ ‚t          j        t          t          f¦  «        5 } t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          | j        ¦  «        }d	| 	                    ¦   «         v sJ ‚d| 	                    ¦   «         v sd| 	                    ¦   «         v sJ ‚t          j        t          t          f¦  «        5 } t          d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          | j        ¦  «        }d	| 	                    ¦   «         v sJ ‚d| 	                    ¦   «         v sd| 	                    ¦   «         v sJ ‚t          j        t          t          f¦  «        5 } t!          d
¬¦  «         ddd¦  «         n# 1 swxY w Y   t          | j        ¦  «        }d	| 	                    ¦   «         v sJ ‚t!          ddddddd¬¦  «        }|j        dk    sJ ‚|j        dk    sJ ‚t          j        t          t          f¦  «        5 } t'          d
¬¦  «         ddd¦  «         n# 1 swxY w Y   t          | j        ¦  «        }d	| 	                    ¦   «         v sJ ‚t'          d-i dd“dd“dd“dd“dd“dd“dd“d d!“d"d“d#d$“d%d“d&d'“d(d“d)d*“d+d*“d,d“Ž}|j        dk    sJ ‚|j        dk    sJ ‚|j        d*k    sJ ‚t-          |d¦  «        rJ ‚t-          |d¦  «        rJ ‚t-          |d"¦  «        rJ ‚dS ).z;Test that all config classes reject invalid/unknown fields.r¾   Nrw   ÚextraÚ	permittedznot a valid fieldr¶  )Úinvalid_fieldrÖ  rÆ  g®Gáz®ó?Tr©   ra  é   iè  g333333ó?)r«   r¬   r­   Únum_threadsÚ
batch_sizeÚsync_thresholdÚresize_factorrù   r   Úsearch_rng_factorr)   Úsearch_rng_epsilong      $@Únreplica_counté   rú   r¨   Úwrite_rng_factorÚwrite_rng_epsilong      @Úsplit_thresholdr÷   Únum_samples_kmeansÚinitial_lambdag      Y@Úreassign_neighbor_countÚmerge_thresholdé   Únum_centers_to_merge_tor«   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ú   Úhasattr)rÐ  rÑ  r5   rü   s       r!   Ú)test_config_classes_reject_invalid_fieldsrê  L  së  € õ 
Œ�
¥OÐ4Ñ	5Ô	5ð 2¸Ý¥C¤LÐ1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ �H”NÑ#Ô#€IØ�I—O’OÑ%Ô%Ð%Ð%Ð%Ð%à�9—?’?Ñ$Ô$Ð$Ð$Ø˜)Ÿ/š/Ñ+Ô+Ð+Ð+Ø )§/¢/Ñ"3Ô"3Ð3Ð3Ð3ð	4õ 
Œ�
¥OÐ4Ñ	5Ô	5ð 0¸Ý¨Ð/Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ �H”NÑ#Ô#€IØ˜iŸošoÑ/Ô/Ð/Ð/Ð/Ð/Ø�i—o’oÑ'Ô'Ð'Ð'¨;¸)¿/º/Ñ:KÔ:KÐ+KÐ+KÐ+KÐKõ 
Œ�
¥OÐ4Ñ	5Ô	5ð -¸Ý VÐ,Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ �H”NÑ#Ô#€IØ˜iŸošoÑ/Ô/Ð/Ð/Ð/Ð/Ø�i—o’oÑ'Ô'Ð'Ð'¨;¸)¿/º/Ñ:KÔ:KÐ+KÐ+KÐ+KÐKõ 
Œ�
¥OÐ4Ñ	5Ô	5ð 8¸Ý!°Ð7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8õ �H”NÑ#Ô#€IØ˜iŸošoÑ/Ô/Ð/Ð/Ð/Ð/Ø�i—o’oÑ'Ô'Ð'Ð'¨;¸)¿/º/Ñ:KÔ:KÐ+KÐ+KÐ+KÐKõ 
Œ�
¥OÐ4Ñ	5Ô	5ð 2¸Ý¨SÐ1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ �H”NÑ#Ô#€IØ˜iŸošoÑ/Ô/Ð/Ð/Ð/Ð/Ø�i—o’oÑ'Ô'Ð'Ð'¨;¸)¿/º/Ñ:KÔ:KÐ+KÐ+KÐ+KÐKõ 
Œ�
¥OÐ4Ñ	5Ô	5ð 5¸Ý ¨tÐ4Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5õ �H”NÑ#Ô#€IØ˜iŸošoÑ/Ô/Ð/Ð/Ð/Ð/Ø�i—o’oÑ'Ô'Ð'Ð'¨;¸)¿/º/Ñ:KÔ:KÐ+KÐ+KÐ+KÐKõ 
Œ�
¥OÐ4Ñ	5Ô	5ð 4¸Ý¨dÐ3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ �H”NÑ#Ô#€IØ˜iŸošoÑ/Ô/Ð/Ð/Ð/Ð/Ø�i—o’oÑ'Ô'Ð'Ð'¨;¸)¿/º/Ñ:KÔ:KÐ+KÐ+KÐ+KÐKõ 
Œ�
¥OÐ4Ñ	5Ô	5ð +¸Ý cÐ*Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +õ �H”NÑ#Ô#€IØ˜iŸošoÑ/Ô/Ð/Ð/Ð/Ð/õ ØØØØØØØðñ ô €Fð Ô! SÒ(Ð(Ð(Ð(ØÔ 2Ò%Ð%Ð%Ð%õ 
Œ�
¥OÐ4Ñ	5Ô	5ð ,¸Ý sÐ+Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,õ �H”NÑ#Ô#€IØ˜iŸošoÑ/Ô/Ð/Ð/Ð/Ð/õ $ð ð ð Ø�bðà˜#ðð  ˜4ðð �qð	ð
 �Rðð ˜ðð ˜#ðð ˜ðð  ˜4ðð �uðð !# ðð ˜ðð !" ðð ˜ðð �#ðð  �bð!€Lð& Ô%¨Ò+Ð+Ð+Ð+ØÔ$¨Ò*Ð*Ð*Ð*ØÔ'¨3Ò.Ð.Ð.Ð.å�|Ð%8Ñ9Ô9Ð9Ð9Ð9Ý�|Ð%5Ñ6Ô6Ð6Ð6Ð6Ý�|Ð%9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:s¡   ¡AÁAÁAÃ#D Ä DÄDÆF"Æ"F&Æ)F&È'IÉIÉIË	K&Ë&K*Ë-K*Í+NÎNÎNÐP*Ð*P.Ð1P.Ò/SÓSÓSÕU0Õ0U4Õ7U4rš  )*Úchromadb.api.typesr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Ú&chromadb.execution.expression.operatorr   Útypingr   r   r   Úpydanticr   r�   r>   r   rA   rZ   r�  rŸ  r¥  r§  r¯  r²  rÂ  rÄ  rÉ  rË  rÒ  rê  r/   r#   r!   ú<module>rï     sº  ððð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð$ 7Ð 6Ð 6Ð 6Ð 6Ð 6Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø $Ð $Ð $Ð $Ð $Ð $Ø €€€ðNð Nð Nð Nð NÐ"9¸$¸s¼)Ô"Dñ Nô Nð Nð*&ð &ð &ð &ð &Ð-¨d°3¬iÔ8ñ &ô &ð &ð<i*ð i*ð i*ð i*ð i*ñ i*ô i*ð i*ðXU	2ð 	2ð 	2ð 	2ð@ð @ð @ð @ð$'ð 'ð 'ð 'ðT)ð )ð )ð )ðXFð Fð Fð Fð@Fð Fð Fð Fð86ð 6ð 6ð 6ðB6ð 6ð 6ð 6ðB=ð =ð =ð =ð":,ð :,ð :,ð :,ðz5ð 5ð 5ð 5ð(u;ð u;ð u;ð u;ð u;ð u;r#   