Ë
    lQêjl1 ã                   ó8  — 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)y)é    )Ú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y)ÚMockSparseEmbeddingFunctionz+Mock sparse embedding function for testing.Únamec                 ó   — || _         y ©N©Ú_name)Úselfr   s     úb/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/test/api/test_schema.pyÚ__init__z$MockSparseEmbeddingFunction.__init__   s	   € Øˆ�
ó    ÚinputÚreturnc                 óJ   — |D �cg c]  }t        ddgddg¬«      ‘Œ c}S c c}w )Nr   é   ç      ð?)ÚindicesÚvalues)r   )r   r#   Ú_s      r    Ú__call__z$MockSparseEmbeddingFunction.__call__   s%   € ØINÖOÀA” a¨ V°S¸#°JÖ?ÒOÐOùÒOs   … c                   ó   — y)NÚmock_sparse© 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                 ó8   — t        | j                  dd«      «      S )Nr   r-   )r   Úget©r2   s    r    Úbuild_from_configz-MockSparseEmbeddingFunction.build_from_config)   s   € ä*¨6¯:©:°f¸mÓ+LÓMÐMr"   N)r-   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr!   r   r   r+   Ústaticmethodr   r   r   r1   r6   r.   r"   r    r   r      sŽ   „ Ù5ñ˜Só ðP˜d 3™ið P¨D°Ñ,>ó Pð ð�#ò ó ðð$˜D  c ™Nó $ð ðN $ s¨C x¡.ð NÐ5Rò 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y)ÚMockEmbeddingFunctionz$Mock embedding function for testing.Ú
model_namec                 ó   — || _         y r   ©Ú_model_name)r   r?   s     r    r!   zMockEmbeddingFunction.__init__1   s
   € Ø%ˆÕr"   r#   r$   c                 ón   — dd l }|D �cg c]!  }|j                  g d¢|j                  ¬«      ‘Œ# c}S c c}w )Nr   )r'   g       @g      @)Údtype)ÚnumpyÚarrayÚfloat32)r   r#   Únpr*   s       r    r+   zMockEmbeddingFunction.__call__4   s.   € Ûð FKÖKÀ�—‘š°·
±
�Õ;ÒKÐKùÒKs   ‰&2c                   ó   — y)NÚmock_embeddingr.   r.   r"   r    r   zMockEmbeddingFunction.name:   s   € àr"   c                 ó   — d| j                   iS )Nr?   rA   r0   s    r    r1   z MockEmbeddingFunction.get_config>   s   € Ø˜d×.Ñ.Ð/Ð/r"   r2   c                 ó8   — t        | j                  dd«      «      S )Nr?   Ú
mock_model)r>   r4   r5   s    r    r6   z'MockEmbeddingFunction.build_from_configA   s   € ä$ V§Z¡Z°¸lÓ%KÓLÐLr"   c                  ó   — y)NÚcosiner.   r0   s    r    Údefault_spacez#MockEmbeddingFunction.default_spaceE   s   € Ør"   c                 ó
   — g d¢S )N)rO   Úl2Úipr.   r0   s    r    Úsupported_spacesz&MockEmbeddingFunction.supported_spacesH   s   € Ú%Ð%r"   N)rM   )r7   r8   r9   r:   r;   r!   r   r   r+   r<   r   r   r   r1   r6   rP   rT   r.   r"   r    r>   r>   .   s¥   „ Ù.ñ& 3ó &ðL˜d 3™ið L¨Jó Lð ð �#ò  ó ð ð0˜D  c ™Nó 0ð ðM $ s¨C x¡.ð MÐ5Lò Mó ðMð˜só ð& $ s¡)ô &r"   r>   c                   ó`  — 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-y).ÚTestNewSchemaz$Test cases for the new Schema class.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 ‚y)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Úlenr2   Ú
source_key©r   Úschemas     r    Ú"test_default_schema_initializationz0TestNewSchema.test_default_schema_initializationO   s  € ä“ˆð �‰Ð*Ð*Ð*ð �‰×%Ñ%Ð1Ð1Ð1Ø�‰×%Ñ%×/Ñ/Ð;Ð;Ð;Ø�‰×%Ñ%×/Ñ/×7Ñ7¸5Ñ@Ð@Ð@Ø�‰×%Ñ%×;Ñ;ÐGÐGÐGà�O‰O×"Ñ"×8Ñ8×@Ñ@ÀDÑHð	
ØHð �‰×)Ñ)Ð5Ð5Ð5Ø�‰×)Ñ)×6Ñ6ÐBÐBÐBà�O‰O×&Ñ&×3Ñ3×;Ñ;¸uÑDð	
ØDð �‰×,Ñ,Ð8Ð8Ð8Ø�‰×,Ñ,×@Ñ@ÐLÐLÐLà�O‰O×)Ñ)×=Ñ=×EÑEÈÑNð	
ØNð �‰×(Ñ(Ð4Ð4Ð4Ø�‰×(Ñ(×;Ñ;ÐGÐGÐGà�O‰O×%Ñ%×8Ñ8×@Ñ@ÀDÑHð	
ØHð �‰×*Ñ*Ð6Ð6Ð6Ø�‰×*Ñ*×?Ñ?ÐKÐKÐKà�O‰O×'Ñ'×<Ñ<×DÑDÈÑLð	
ØLð �‰×&Ñ&Ð2Ð2Ð2Ø�‰×&Ñ&×:Ñ:ÐFÐFÐFà�O‰O×#Ñ#×7Ñ7×?Ñ?À4ÑGð	
ØGð �{‰{Ð&Ð&Ð&Ü�6—;‘;Ó 1Ò$Ð$Ð$ð ˜fŸk™kÑ)Ð)Ð)Ø�{‰{˜;Ñ'×.Ñ.Ð:Ð:Ð:Ø�{‰{˜;Ñ'×.Ñ.×8Ñ8ÐDÐDÐDØ�{‰{˜;Ñ'×.Ñ.×8Ñ8×@Ñ@ÀDÑHÐHÐHØ�{‰{˜;Ñ'×.Ñ.×DÑDÐPÐPÐPØ�{‰{˜;Ñ'×.Ñ.×DÑD×LÑLÐPUÑUÐUÐUð ˜vŸ{™{Ñ*Ð*Ð*Ø�{‰{˜<Ñ(×3Ñ3Ð?Ð?Ð?Ø�{‰{˜<Ñ(×3Ñ3×@Ñ@ÐLÐLÐLØ�{‰{˜<Ñ(×3Ñ3×@Ñ@×HÑHÈDÑPÐPÐPà�K‰K˜Ñ%×0Ñ0×=Ñ=×DÑD×OÑOØòð	
ñr"   c                 ó¤  — t        «       }t        «       }|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                  |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 ‚y)zJTest creating a sparse vector index on a specific key with default config.Úcustom_sparse_key©r2   ÚkeyNTF)r   r   Úcreate_indexrj   rb   rc   r^   r2   r\   r`   rd   rf   rh   r[   ©r   rn   r2   Úresults       r    Ú&test_create_sparse_vector_index_on_keyz4TestNewSchema.test_create_sparse_vector_index_on_key˜   sä  € ä“ˆô )Ó*ˆØ×$Ñ$¨FÐ8KÐ$ÓLˆð ˜ÑÐÐð # f§k¡kÑ1Ð1Ð1ð �{‰{Ð.Ñ/×=Ñ=ÐIÐIÐIà�K‰KÐ+Ñ,×:Ñ:×NÑNØðð	
ðð �K‰KÐ+Ñ,×:Ñ:×NÑN×VÑVØñð	
ðð �K‰KÐ+Ñ,×:Ñ:×NÑN×UÑUØòð	
ðð
 �{‰{Ð.Ñ/×6Ñ6Ð>Ð>Ð>Ø�{‰{Ð.Ñ/×:Ñ:ÐBÐBÐBØ�{‰{Ð.Ñ/×9Ñ9ÐAÐAÐAØ�{‰{Ð.Ñ/×;Ñ;ÐCÐCÐCØ�{‰{Ð.Ñ/×7Ñ7Ð?Ð?Ð?ð �‰×,Ñ,Ð8Ð8Ð8Ø�‰×,Ñ,×@Ñ@ÐLÐLÐLà�O‰O×)Ñ)×=Ñ=×EÑEÈÑNð	
ÙNr"   c                 óÖ  — t        «       }t        d¬«      }t        |d¬«      }|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                  j                  |k(  sJ ‚|j                  j                  dk(  sJ ‚|j                  j                  j                  «       d	k(  sJ ‚|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 ‚y)zTTest creating a sparse vector index with custom config including embedding function.Úcustom_sparse_ef©r   Úcustom_document_field©Úembedding_functionrl   Úsparse_embeddingsrr   NTr-   r   F)r   r   r   rt   rj   rb   rc   r^   r2   r}   rl   r   r1   r[   )r   rn   Úembedding_funcr2   rv   Úsparse_indexs         r    Ú2test_create_sparse_vector_index_with_custom_configz@TestNewSchema.test_create_sparse_vector_index_with_custom_configÅ   sü  € ä“ˆô 5Ð:LÔMˆÜ(Ø-Ð:Qô
ˆð
 ×$Ñ$¨FÐ8KÐ$ÓLˆð ˜ÑÐÐð # f§k¡kÑ1Ð1Ð1Ø�{‰{Ð.Ñ/×=Ñ=ÐIÐIÐIà�K‰KÐ+Ñ,×:Ñ:×NÑNØðð	
ðð
 —{‘{Øñ
ç
‰-×+Ñ+ð 	ð ×#Ñ# tÑ+Ð+Ð+ð ×"Ñ"×5Ñ5¸ÒGÐGÐGØ×"Ñ"×-Ñ-Ð1HÒHÐHÐHð ×"Ñ"×5Ñ5×:Ñ:Ó<ÀÒMÐMÐMØ×"Ñ"×5Ñ5×@Ñ@ÓBØÐ&ðG
ò 
ð 	
ð 
ð
 �‰×,Ñ,Ð8Ð8Ð8Ø�‰×,Ñ,×@Ñ@ÐLÐLÐLà�O‰O×)Ñ)×=Ñ=×EÑEÈÑNð	
ØNð �O‰O×)Ñ)×=Ñ=×DÑD×WÑWØðð	
ñr"   c                 óˆ  — t        «       }t        «       }|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                  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 ‚y)ú7Test disabling string inverted index on a specific key.Úcustom_text_keyrr   NFrY   rZ   T)r   r   Údelete_indexrj   r\   r_   r^   r[   ru   s       r    Útest_delete_index_on_keyz&TestNewSchema.test_delete_index_on_keyø   sÀ  € ä“ˆô +Ó,ˆØ×$Ñ$¨FÐ8IÐ$ÓJˆð ˜ÑÐÐð ! F§K¡KÑ/Ð/Ð/ð �{‰{Ð,Ñ-×4Ñ4Ð@Ð@Ð@Ø�{‰{Ð,Ñ-×4Ñ4×JÑJÐVÐVÐVà�K‰KÐ)Ñ*×1Ñ1×GÑG×OÑOÐSXÑXð	
ØXð ˜fŸk™kÑ)Ð)Ð)Ø�{‰{˜;Ñ'×.Ñ.Ð:Ð:Ð:Ø�{‰{˜;Ñ'×.Ñ.×DÑDÐPÐPÐPà�K‰K˜Ñ$×+Ñ+×AÑA×IÑIÈUÑRð	
ØRð ˜vŸ{™{Ñ*Ð*Ð*à�K‰K˜Ñ%×,Ñ,Ð4ð	
Ø4ð �‰×%Ñ%Ð1Ð1Ð1Ø�‰×%Ñ%×;Ñ;ÐGÐGÐGà�O‰O×"Ñ"×8Ñ8×@Ñ@ÀDÑHð	
ÙHr"   c                 ó  — t        «       }t        dt        «       ¬«      }t        «       }|j	                  |d¬«      j                  |d¬«      j                  |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 ‚y)zDTest chaining create_index() and delete_index() operations together.Úraw_text©rl   r}   Úembeddings_keyrr   Ú
text_key_1Ú
text_key_2NTFrY   rZ   )r   r   r   r   rt   r…   rj   rb   rc   r^   r2   rl   r\   r`   rd   rf   rh   r_   r[   r]   ra   )r   rn   Úsparse_configÚstring_configrv   s        r    Ú)test_chained_create_and_delete_operationsz7TestNewSchema.test_chained_create_and_delete_operations"  sj  € ä“ˆô 0Ø!Ô6QÓ6Sô
ˆô 2Ó3ˆð ×Ñ }Ð:JÐÓKß‰\ °Lˆ\ÓAß‰\ °Lˆ\ÓAð 	ð ˜ÑÐÐð   6§;¡;Ñ.Ð.Ð.Ø˜vŸ{™{Ñ*Ð*Ð*Ø˜vŸ{™{Ñ*Ð*Ð*ð �{‰{Ð+Ñ,×:Ñ:ÐFÐFÐFà�K‰KÐ(Ñ)×7Ñ7×KÑKÐWð	
ØWð �K‰KÐ(Ñ)×7Ñ7×KÑK×SÑSØñð	
ðð �K‰KØ ñç‰m×/Ñ/·±·z±zØòð	
ðð �{‰{Ð+Ñ,×3Ñ3Ð;Ð;Ð;Ø�{‰{Ð+Ñ,×7Ñ7Ð?Ð?Ð?Ø�{‰{Ð+Ñ,×6Ñ6Ð>Ð>Ð>Ø�{‰{Ð+Ñ,×8Ñ8Ð@Ð@Ð@Ø�{‰{Ð+Ñ,×4Ñ4Ð<Ð<Ð<ð �{‰{˜<Ñ(×/Ñ/Ð;Ð;Ð;Ø�{‰{˜<Ñ(×/Ñ/×EÑEÐQÐQÐQØ�{‰{˜<Ñ(×/Ñ/×EÑE×MÑMÐQVÑVÐVÐVð �{‰{˜<Ñ(×6Ñ6Ð>Ð>Ð>Ø�{‰{˜<Ñ(×3Ñ3Ð;Ð;Ð;Ø�{‰{˜<Ñ(×2Ñ2Ð:Ð:Ð:Ø�{‰{˜<Ñ(×4Ñ4Ð<Ð<Ð<Ø�{‰{˜<Ñ(×0Ñ0Ð8Ð8Ð8ð �{‰{˜<Ñ(×/Ñ/Ð;Ð;Ð;Ø�{‰{˜<Ñ(×/Ñ/×EÑEÐQÐQÐQØ�{‰{˜<Ñ(×/Ñ/×EÑE×MÑMÐQVÑVÐVÐVð �{‰{˜<Ñ(×6Ñ6Ð>Ð>Ð>Ø�{‰{˜<Ñ(×3Ñ3Ð;Ð;Ð;Ø�{‰{˜<Ñ(×2Ñ2Ð:Ð:Ð:Ø�{‰{˜<Ñ(×4Ñ4Ð<Ð<Ð<Ø�{‰{˜<Ñ(×0Ñ0Ð8Ð8Ð8ð �‰×,Ñ,Ð8Ð8Ð8Ø�‰×,Ñ,×@Ñ@ÐLÐLÐLà�O‰O×)Ñ)×=Ñ=×EÑEÈÑNð	
ØNð �‰×%Ñ%Ð1Ð1Ð1Ø�‰×%Ñ%×;Ñ;ÐGÐGÐGà�O‰O×"Ñ"×8Ñ8×@Ñ@ÀDÑHð	
ØHð ˜fŸk™kÑ)Ð)Ð)Ø˜vŸ{™{Ñ*Ð*Ð*Ø�{‰{˜;Ñ'×.Ñ.Ð:Ð:Ð:Ø�{‰{˜;Ñ'×.Ñ.×8Ñ8ÐDÐDÐDà�K‰K˜Ñ$×+Ñ+×5Ñ5×=Ñ=ÀÑEð	
ØEà�{‰{˜<Ñ(×3Ñ3Ð?Ð?Ð?Ø�{‰{˜<Ñ(×3Ñ3×@Ñ@ÐLÐLÐLà�K‰K˜Ñ%×0Ñ0×=Ñ=×EÑEÈÑMð	
ÙMr"   c                 óª  — t        «       }t        dd¬«      }|j                  |¬«      }||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  |j                  |d¬«       ddd«       t        j                  t        d¬«      5  |j                  |d	¬«       ddd«       t        d¬«      }t        j                  t        d¬«      5  |j                  |d¬«       ddd«       y# 1 sw Y   Œ„xY w# 1 sw Y   ŒYxY w# 1 sw Y   yxY w)z5Test vector index configuration and key restrictions.rO   Úcustom_source)Úspacerl   r5   NFrZ   TrY   rR   )r’   ú/Vector index cannot be enabled on specific keys©ÚmatchÚ
my_vectorsrr   ú.Cannot create index on special key '#document'rS   ú/Cannot create index on special key '#embedding')r   r   rt   r[   r`   ra   r^   r2   r’   rl   rj   ÚpytestÚraisesÚ
ValueError)r   rn   Úvector_configrv   Úvector_config2Úvector_config3s         r    Ú)test_vector_index_config_and_restrictionsz7TestNewSchema.test_vector_index_config_and_restrictions‡  sœ  € ä“ˆÜ)°À_ÔUˆð ×$Ñ$¨MÐ$Ó:ˆØ˜ÑÐÐð �‰×)Ñ)Ð5Ð5Ð5Ø�‰×)Ñ)×6Ñ6ÐBÐBÐBà�O‰O×&Ñ&×3Ñ3×;Ñ;¸uÑDð	
ØDà�‰×)Ñ)×6Ñ6×=Ñ=×CÑCÀxÒOÐOÐOà�O‰O×&Ñ&×3Ñ3×:Ñ:×EÑEÈÒXð	
ØXð
 �{‰{˜<Ñ(×3Ñ3Ð?Ð?Ð?Ø�{‰{˜<Ñ(×3Ñ3×@Ñ@ÐLÐLÐLà�K‰K˜Ñ%×0Ñ0×=Ñ=×EÑEÈÑMð	
ØMð �K‰K˜Ñ%×0Ñ0×=Ñ=×DÑD×JÑJÈhÒVð	
ØVð �K‰K˜Ñ%×0Ñ0×=Ñ=×DÑD×OÑOØòð	
ðô
 +°Ô6ˆÜ�]‰]ÜÐOô
ñ 	Ið ×Ñ ~¸<ÐÔH÷	Iô �]‰]ÜÐNô
ñ 	Hð ×Ñ ~¸;ÐÔG÷	Hô +°Ô6ˆÜ�]‰]ÜÐOô
ñ 	Ið ×Ñ ~¸<ÐÔH÷	Ið 	I÷	Ið 	Iú÷	Hð 	Hú÷	Ið 	Iús$   ÈJ1ÉJ=ÊK	Ê1J:Ê=KË	Kc                 óF  — t        «       }t        d¬«      }t        ddd¬«      }t        |d|d¬	«      }|j	                  |¬
«      }||u sJ ‚|j
                  j                  €J ‚|j
                  j                  j                  }|€J ‚|j                  du sJ ‚|j                  j                  |u sJ ‚|j                  j                  j                  «       dk(  sJ ‚|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 ‚y)zATest setting embedding function and HNSW config for vector index.Úcustom_model_v2©r?   éÈ   é    éd   ©Úef_constructionÚmax_neighborsÚ	ef_searchrR   r{   )r}   r’   Úhnswrl   r5   NFrJ   r?   rZ   TrY   )r   r>   r   r   rt   r[   r`   ra   r^   r2   r}   r   r1   r’   rª   r§   r¨   r©   rl   rj   )r   rn   Úmock_efÚhnsw_configrœ   rv   Ú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ˆÜ%Ø¨r¸Sô
ˆô
 *Ø&ØØØ.ô	
ˆð ×$Ñ$¨MÐ$Ó:ˆØ˜ÑÐÐð �‰×)Ñ)Ð5Ð5Ð5Ø Ÿ/™/×4Ñ4×AÑAˆØÐ*Ð*Ð*Ø×&Ñ&¨%Ñ/Ð/Ð/Ø×%Ñ%×8Ñ8¸GÑCÐCÐCØ×%Ñ%×8Ñ8×=Ñ=Ó?ÐCSÒSÐSÐSØ×%Ñ%×8Ñ8×CÑCÓEØÐ+ðJ
ò 
ð 	
ð 
ð ×%Ñ%×+Ñ+¨tÒ3Ð3Ð3Ø×%Ñ%×*Ñ*Ð6Ð6Ð6Ø×%Ñ%×*Ñ*×:Ñ:¸cÒAÐAÐAØ×%Ñ%×*Ñ*×8Ñ8¸BÒ>Ð>Ð>Ø×%Ñ%×*Ñ*×4Ñ4¸Ò;Ð;Ð;Ø×%Ñ%×0Ñ0Ð4KÒKÐKÐKð �{‰{˜<Ñ(×3Ñ3Ð?Ð?Ð?Ø!Ÿ;™; |Ñ4×?Ñ?×LÑLÐØÐ+Ð+Ð+Ø×'Ñ'¨4Ñ/Ð/Ð/Ø×&Ñ&×9Ñ9¸WÑDÐDÐDØ×&Ñ&×,Ñ,°Ò4Ð4Ð4Ø×&Ñ&×+Ñ+Ð7Ð7Ð7Ø×&Ñ&×+Ñ+×;Ñ;¸sÒBÐBÐBà×#Ñ#×.Ñ.°+Ò=ð	
Ù=r"   c                 óà  — t        «       }t        «       }t        j                  t        d¬«      5  |j                  |¬«       ddd«       |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                  |k(  sJ ‚t        «       }t        j                  t        d¬«      5  |j                  |d¬«       ddd«       t        j                  t        d	¬«      5  |j                  |d
¬«       ddd«       t        j                  t        d¬«      5  |j                  t        «       d¬«       ddd«       y# 1 sw Y   �Œ~xY w# 1 sw Y   Œ�xY w# 1 sw Y   ŒbxY w# 1 sw Y   yxY w)z2Test FTS index configuration and key restrictions.ú.FTS index can only be enabled on #document keyr”   r5   NrY   rr   TÚcustom_text_fieldr˜   rZ   r—   )r   r   r™   rš   r›   rt   rj   r\   r]   r^   r2   r   )r   rn   Ú
fts_configrv   Úfts_config2s        r    Ú&test_fts_index_config_and_restrictionsz4TestNewSchema.test_fts_index_config_and_restrictionsñ  sÛ  € ä“ˆÜ#Ó%ˆ
ô �]‰]ÜÐNô
ñ 	3ð ×Ñ zÐÔ2÷	3ð ×$Ñ$¨J¸KÐ$ÓHˆØ˜ÑÐÐð �{‰{˜;Ñ'×.Ñ.Ð:Ð:Ð:Ø�{‰{˜;Ñ'×.Ñ.×8Ñ8ÐDÐDÐDØ�{‰{˜;Ñ'×.Ñ.×8Ñ8×@Ñ@ÀDÑHÐHÐHØ�{‰{˜;Ñ'×.Ñ.×8Ñ8×?Ñ?À:ÒMÐMÐMô %Ó&ˆÜ�]‰]ÜÐNô
ñ 	Mð ×Ñ {Ð8KÐÔL÷	Mô �]‰]ÜÐOô
ñ 	Fð ×Ñ {¸ÐÔE÷	Fô �]‰]ÜÐNô
ñ 	Uð ×ÑÔ'@Ó'BÈÐÔT÷	Uð 	U÷;	3ñ 	3ú÷"	Mð 	Mú÷	Fð 	Fú÷	Uð 	Uús/   °F?Ä,GÅ#GÆG$Æ?G	ÇGÇG!Ç$G-c                 óX  — t        «       }t        «       }t        j                  t        d¬«      5  |j                  |d¬«       ddd«       t        j                  t        d¬«      5  |j                  |d¬«       ddd«       t        «       }t        j                  t        d¬«      5  |j                  |d¬«       ddd«       t        j                  t        d¬«      5  |j                  |d¬«       ddd«       y# 1 sw Y   Œ¹xY w# 1 sw Y   ŒŽxY w# 1 sw Y   ŒYxY w# 1 sw Y   yxY w)zHTest that #embedding and #document keys are blocked for all index types.r—   r”   rY   rr   Nr˜   rZ   )r   r   r™   rš   r›   rt   r   )r   rn   rŽ   r�   s       r    Ú-test_special_keys_blocked_for_all_index_typesz;TestNewSchema.test_special_keys_blocked_for_all_index_types  s'  € ä“ˆô 2Ó3ˆÜ�]‰]ÜÐNô
ñ 	Gð ×Ñ }¸+ÐÔF÷	Gô �]‰]ÜÐOô
ñ 	Hð ×Ñ }¸,ÐÔG÷	Hô 0Ó1ˆÜ�]‰]ÜÐNô
ñ 	Gð ×Ñ }¸+ÐÔF÷	Gô �]‰]ÜÐOô
ñ 	Hð ×Ñ }¸,ÐÔG÷	Hð 	H÷'	Gð 	Gú÷	Hð 	Hú÷	Gð 	Gú÷	Hð 	Hús/   °C<Á'DÂ(DÃD Ã<DÄDÄDÄ D)c                 ó   — t        «       }t        j                  t        d¬«      5  |j	                  d¬«       ddd«       t        j                  t        d¬«      5  |j                  d¬«       ddd«       y# 1 sw Y   Œ@xY w# 1 sw Y   yxY w)z8Test that enabling all indexes for a key is not allowed.z.Cannot enable all index types for key 'my_key'r”   Úmy_key©rs   Nz/Cannot disable all index types for key 'my_key')r   r™   rš   r›   rt   r…   rm   s     r    Ú&test_cannot_enable_all_indexes_for_keyz4TestNewSchema.test_cannot_enable_all_indexes_for_key7  s†   € ä“ˆô �]‰]ÜÐNô
ñ 	.ð ×Ñ HÐÔ-÷	.ô �]‰]ÜÐOô
ñ 	.ð ×Ñ HÐÔ-÷	.ð 	.÷	.ð 	.ú÷	.ð 	.ús   ¦A8ÁBÁ8BÂBc                 óÆ  — t        «       }t        «       }t        j                  t        d¬«      5  |j                  |¬«       ddd«       t        j                  t        d¬«      5  |j                  |d¬«       ddd«       t        «       }t        j                  t        d¬«      5  |j                  |¬«       ddd«       t        j                  t        d¬«      5  |j                  |d¬«       ddd«       |j                  |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 ‚y# 1 sw Y   �ŒoxY w# 1 sw Y   �ŒExY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒçxY w)zLTest that deleting vector index is not allowed and FTS delete is restricted.ú0Deleting vector index is not currently supportedr”   r5   Nr–   rr   ú5Deleting FTS index is only supported on #document keyÚmy_textrY   F)r   r   r™   rš   r›   r…   r   rj   r\   r]   r^   r2   ©r   rn   rœ   r³   s       r    Ú&test_cannot_delete_vector_or_fts_indexz4TestNewSchema.test_cannot_delete_vector_or_fts_indexG  s¸  € ä“ˆô *Ó+ˆÜ�]‰]ÜÐPô
ñ 	6ð ×Ñ }ÐÔ5÷	6ô �]‰]ÜÐPô
ñ 	Hð ×Ñ }¸,ÐÔG÷	Hô $Ó%ˆ
Ü�]‰]ÜÐUô
ñ 	3ð ×Ñ zÐÔ2÷	3ô �]‰]ÜÐUô
ñ 	Bð ×Ñ z°yÐÔA÷	Bð 	×Ñ :°;ÐÔ?Ø�{‰{˜;Ñ'×.Ñ.Ð:Ð:Ð:Ø�{‰{˜;Ñ'×.Ñ.×8Ñ8ÐDÐDÐDØ�{‰{˜;Ñ'×.Ñ.×8Ñ8×@Ñ@ÀEÑIÐIÐIØ�{‰{˜;Ñ'×.Ñ.×8Ñ8×?Ñ?À:ÒMÐMÑM÷;	6ñ 	6ú÷	Hñ 	Hú÷	3ñ 	3ú÷	Bð 	Bús/   °F0Á&F=Â'G
ÃGÆ0F:Æ=GÇ
GÇG c                 ó  — t        «       }|j                  j                  €J ‚|j                  j                  j                  €J ‚|j                  j                  j                  j                  du sJ ‚t        «       }|j                  |¬«      }||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 ‚y)z.Test disabling string inverted index globally.NTr5   FrY   )	r   r[   r\   r_   r^   r   r…   r2   rj   ©r   rn   rŽ   rv   s       r    Ú+test_disable_string_inverted_index_globallyz9TestNewSchema.test_disable_string_inverted_index_globallyl  s[  € ä“ˆð �‰×%Ñ%Ð1Ð1Ð1Ø�‰×%Ñ%×;Ñ;ÐGÐGÐGØ�‰×%Ñ%×;Ñ;×CÑCÀtÑKÐKÐKô 2Ó3ˆØ×$Ñ$¨MÐ$Ó:ˆØ˜ÑÐÐð �‰×%Ñ%×;Ñ;ÐGÐGÐGØ�‰×%Ñ%×;Ñ;×CÑCÀuÑLÐLÐLØ�‰×%Ñ%×;Ñ;×BÑBÀmÒSÐSÐSð �{‰{˜;Ñ'×.Ñ.Ð:Ð:Ð:Ø�{‰{˜;Ñ'×.Ñ.×DÑDÐPÐPÐPà�K‰K˜Ñ$×+Ñ+×AÑA×IÑIÈUÑRð	
ÙRr"   c                 óú  — t        «       }t        «       }|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                  |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 ‚y)rƒ   Úmy_text_fieldrr   NFTrY   rZ   )r   r   r…   rj   r\   r_   r^   r2   r`   rb   rd   r[   ra   rÃ   s       r    Ú)test_disable_string_inverted_index_on_keyz7TestNewSchema.test_disable_string_inverted_index_on_key†  s\  € ä“ˆô 2Ó3ˆØ×$Ñ$¨M¸Ð$ÓOˆØ˜ÑÐÐð  &§+¡+Ñ-Ð-Ð-Ø�{‰{˜?Ñ+×2Ñ2Ð>Ð>Ð>Ø�{‰{˜?Ñ+×2Ñ2×HÑHÐTÐTÐTà�K‰K˜Ñ(×/Ñ/×EÑE×MÑMÐQVÑVð	
ØVð �K‰K˜Ñ(×/Ñ/×EÑE×LÑLØòð	
ðð
 �{‰{˜?Ñ+×6Ñ6Ð>Ð>Ð>Ø�{‰{˜?Ñ+×9Ñ9ÐAÐAÐAØ�{‰{˜?Ñ+×5Ñ5Ð=Ð=Ð=ð �‰×%Ñ%Ð1Ð1Ð1Ø�‰×%Ñ%×;Ñ;ÐGÐGÐGØ�‰×%Ñ%×;Ñ;×CÑCÀtÑKÐKÐKð �{‰{˜;Ñ'×.Ñ.Ð:Ð:Ð:Ø�{‰{˜;Ñ'×.Ñ.×DÑDÐPÐPÐPØ�{‰{˜;Ñ'×.Ñ.×DÑD×LÑLÐPUÑUÐUÐUØ�{‰{˜<Ñ(×3Ñ3Ð?Ð?Ð?Ø�{‰{˜<Ñ(×3Ñ3×@Ñ@ÐLÐLÐLØ�{‰{˜<Ñ(×3Ñ3×@Ñ@×HÑHÈDÑPÐPÑPr"   c                 ó  — t        «       }|j                  j                  €J ‚|j                  j                  j                  €J ‚|j                  j                  j                  j                  du sJ ‚t        «       }|j                  |¬«      }||u sJ ‚|j                  j                  j                  j                  du sJ ‚|j                  j                  j                  j                  |k(  sJ ‚t        «       }|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                  |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 ‚y)	zATest disabling int inverted index globally and on a specific key.NTr5   FÚ	age_fieldrr   rY   rZ   )r   r[   rd   re   r^   r   r…   r2   rj   r\   r`   rb   rf   rh   )r   rn   Ú
int_configrv   Úint_config2s        r    Útest_disable_int_inverted_indexz-TestNewSchema.test_disable_int_inverted_index­  si  € ä“ˆð �‰×(Ñ(Ð4Ð4Ð4Ø�‰×(Ñ(×;Ñ;ÐGÐGÐGØ�‰×(Ñ(×;Ñ;×CÑCÀtÑKÐKÐKô ,Ó-ˆ
Ø×$Ñ$¨JÐ$Ó7ˆØ˜ÑÐÐð �‰×(Ñ(×;Ñ;×CÑCÀuÑLÐLÐLØ�‰×(Ñ(×;Ñ;×BÑBÀjÒPÐPÐPô -Ó.ˆØ×$Ñ$¨K¸[Ð$ÓIˆØ˜ÑÐÐð ˜fŸk™kÑ)Ð)Ð)Ø�{‰{˜;Ñ'×1Ñ1Ð=Ð=Ð=Ø�{‰{˜;Ñ'×1Ñ1×DÑDÐPÐPÐPØ�{‰{˜;Ñ'×1Ñ1×DÑD×LÑLÐPUÑUÐUÐUà�K‰K˜Ñ$×.Ñ.×AÑA×HÑHÈKÒWð	
ØWð �{‰{˜;Ñ'×.Ñ.Ð6Ð6Ð6Ø�{‰{˜;Ñ'×2Ñ2Ð:Ð:Ð:Ø�{‰{˜;Ñ'×5Ñ5Ð=Ð=Ð=Ø�{‰{˜;Ñ'×3Ñ3Ð;Ð;Ð;Ø�{‰{˜;Ñ'×/Ñ/Ð7Ð7Ð7ð �{‰{˜;Ñ'×.Ñ.Ð:Ð:Ð:Ø�{‰{˜<Ñ(×3Ñ3Ð?Ð?Ñ?r"   c                 óö  — t        «       }|j                  «       }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                  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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|j0                  v sJ ‚|j0                  d   j                  €J ‚|j0                  d   j                  j                  €J ‚|j0                  d   j                  j                  j                  d	u sJ ‚|j0                  d   j                  j                  j                  |j0                  d   j                  j                  j                  k(  sJ ‚|j0                  d   j                  j                  €J ‚|j0                  d   j                  j                  j                  du sJ ‚|j0                  d   j                  j                  j                  |j0                  d   j                  j                  j                  k(  sJ ‚d|j0                  v sJ ‚|j0                  d   j                  €J ‚|j0                  d   j                  j                  €J ‚|j0                  d   j                  j                  j                  d	u sJ ‚|j0                  d   j                  j                  j                  |j0                  d   j                  j                  j                  k(  sJ ‚|j0                  d   j                  j                  j                  j2                  dk(  sJ ‚|j0                  d   j                  j                  j                  j2                  dk(  sJ ‚|j0                  d   j                  j                  j                  j                  dk(  sJ ‚|j0                  d   j                  j                  j                  j                  	 €J ‚|j0                  d   j                  j                  j                  j                  j                  «       dk(  sJ ‚|j0                  d   j                  j                  j                  j                  j                  «       dk(  sJ ‚y) z;Test serialization and deserialization of a default Schema.r[   rj   r\   r]   r^   Fr2   r_   Tr`   ra   r’   rR   r}   ÚtypeÚknownr   Údefaultrb   rc   ÚunknownÚintre   Úfloatrg   Úboolri   rY   rZ   rl   N)r   Úserialize_to_jsonÚ
isinstanceÚdictÚdeserialize_from_jsonr[   r\   r]   r^   r_   r`   ra   r2   r’   r}   r   rb   rc   rd   re   rf   rg   rh   ri   rj   rl   )	r   ÚoriginalÚ	json_datar[   rœ   Úsparse_vector_configrj   Úembedding_vector_configÚdeserializeds	            r    Ú)test_serialize_deserialize_default_schemaz7TestNewSchema.test_serialize_deserialize_default_schemaØ  s‡  € ô “8ˆð ×.Ñ.Ó0ˆ	ð ˜YÑ&Ð&Ð&Ø˜Ñ"Ð"Ð"Ü˜) JÑ/´Ô6Ð6Ð6Ü˜) FÑ+¬TÔ2Ð2Ð2ð ˜ZÑ(ˆð ˜8Ñ#Ð#Ð#Ø˜h xÑ0Ñ0Ð0Ð0Ø˜Ñ! +Ñ.¨yÑ9¸UÑBÐBÐBØ˜Ñ! +Ñ.¨xÑ8¸BÒ>Ð>Ð>Ø&¨(°8Ñ*<Ñ<Ð<Ð<Ø˜Ñ!Ð"9Ñ:¸9ÑEÈÑMÐMÐMØ˜Ñ!Ð"9Ñ:¸8ÑDÈÒJÐJÐJð ˜xÑ'Ð'Ð'Ø ¨,Ñ!7Ñ7Ð7Ð7Ø˜Ñ% nÑ5°iÑ@ÀEÑIÐIÐIØ  Ñ.¨~Ñ>¸xÑHˆØ˜-Ñ'Ð'Ð'Ø˜WÑ%¨Ò-Ð-Ð-Ø# }Ñ4Ð4Ð4ØÐ1Ñ2°6Ñ:¸gÒEÐEÐEØÐ1Ñ2°6Ñ:¸iÒGÐGÐGØÐ1Ñ2°8Ñ<ÀÒBÐBÐBð  (Ñ*Ð*Ð*Ø$¨°Ñ(AÑAÐAÐAØ˜Ñ(Ð)>Ñ?À	ÑJÈeÑSÐSÐSØ'¨Ñ8Ð9NÑOØñ 
Ðð $Ð';Ñ;Ð;Ð;Ø#Ð$8Ñ9¸fÀiÐ=PÒPÐPÐPð ˜Ñ Ð Ð Ø# x°¡Ñ6Ð6Ð6Ø˜‰Ð3Ñ4°YÑ?À4ÑGÐGÐGØ˜‰Ð3Ñ4°XÑ>À"ÒDÐDÐDð ˜(Ñ"Ð"Ð"Ø%¨°'Ñ):Ñ:Ð:Ð:Ø˜Ñ Ð!7Ñ8¸ÑCÀtÑKÐKÐKØ˜Ñ Ð!7Ñ8¸ÑBÀbÒHÐHÐHð ˜Ñ!Ð!Ð!Ø$¨°Ñ(8Ñ8Ð8Ð8Ø˜ÑÐ 5Ñ6°yÑAÀTÑIÐIÐIØ˜ÑÐ 5Ñ6°xÑ@ÀBÒFÐFÐFð ˜Ñ ˆð ˜dÑ"Ð"Ð"Ø˜4 Ñ,Ñ,Ð,Ð,Ø˜d ;Ñ/°Ñ9Ñ9Ð9Ð9Ø�KÑ  Ñ*¨;Ñ7¸	ÑBÀdÑJÐJÐJØ�KÑ  Ñ*¨;Ñ7¸ÑAÀRÒGÐGÐGØ&¨$¨{Ñ*;¸HÑ*EÑEÐEÐEØ�KÑ  Ñ*Ð+BÑCÀIÑNÐRWÑWÐWÐWØ�KÑ  Ñ*Ð+BÑCÀHÑMÐQSÒSÐSÐSð ˜tÑ#Ð#Ð#Ø˜t LÑ1Ñ1Ð1Ð1Ø  lÑ!3°LÑ!AÑAÐAÐAØ�LÑ! ,Ñ/°Ñ?À	ÑJÈdÑRÐRÐRØ"& |Ñ"4°\Ñ"BÀ>Ñ"RØñ#
Ðð Ð1Ñ1Ð1Ð1Ø& wÑ/°4Ò7Ð7Ð7ØÐ6Ñ6Ð6Ð6Ø& |Ñ4¸ÒCÐCÐCØ#Ð'>Ñ>Ð>Ð>Ø&Ð';Ñ<¸VÑDÈÒOÐOÐOØ&Ð';Ñ<¸VÑDÈ	ÒQÐQÐQØ&Ð';Ñ<¸XÑFÈ"ÒLÐLÐLô ×3Ñ3°IÓ>ˆð ×$Ñ$×+Ñ+Ð7Ð7Ð7Ø×$Ñ$×+Ñ+×5Ñ5ÐAÐAÐAØ×$Ñ$×+Ñ+×5Ñ5×=Ñ=ÀÑFÐFÐFà×!Ñ!×(Ñ(×2Ñ2×:Ñ:Ø× Ñ ×'Ñ'×1Ñ1×9Ñ9ò:ð	
ð:ð ×$Ñ$×+Ñ+×AÑAÐMÐMÐMØ×$Ñ$×+Ñ+×AÑA×IÑIÈTÑQÐQÐQà×!Ñ!×(Ñ(×>Ñ>×FÑFØ× Ñ ×'Ñ'×=Ñ=×EÑEòFð	
ðFð
 ×$Ñ$×/Ñ/Ð;Ð;Ð;Ø×$Ñ$×/Ñ/×<Ñ<ÐHÐHÐHØ×$Ñ$×/Ñ/×<Ñ<×DÑDÈÑMÐMÐMà×!Ñ!×,Ñ,×9Ñ9×AÑAØ× Ñ ×+Ñ+×8Ñ8×@Ñ@òAð	
ðAð ×$Ñ$×/Ñ/×<Ñ<×CÑC×IÑIÈTÒQÐQÐQð ×!Ñ!×,Ñ,×9Ñ9×@Ñ@×SÑSØðð	
ðð ×!Ñ!×,Ñ,×9Ñ9×@Ñ@×SÑS×XÑXÓZØòð	
ðð ×Ñ×(Ñ(×5Ñ5×<Ñ<×OÑO×TÑTÓVØòð	
ðð
 ×$Ñ$×2Ñ2Ð>Ð>Ð>Ø×$Ñ$×2Ñ2×FÑFÐRÐRÐRØ×$Ñ$×2Ñ2×FÑF×NÑNÐRWÑWÐWÐWà×!Ñ!×/Ñ/×CÑC×KÑKØ× Ñ ×.Ñ.×BÑB×JÑJòKð	
ðKð
 ×$Ñ$×.Ñ.Ð:Ð:Ð:Ø×$Ñ$×.Ñ.×AÑAÐMÐMÐMØ×$Ñ$×.Ñ.×AÑA×IÑIÈTÑQÐQÐQà×!Ñ!×+Ñ+×>Ñ>×FÑFØ× Ñ ×*Ñ*×=Ñ=×EÑEòFð	
ðFð
 ×$Ñ$×0Ñ0Ð<Ð<Ð<Ø×$Ñ$×0Ñ0×EÑEÐQÐQÐQØ×$Ñ$×0Ñ0×EÑE×MÑMÐQUÑUÐUÐUà×!Ñ!×-Ñ-×BÑB×JÑJØ× Ñ ×,Ñ,×AÑA×IÑIòJð	
ðJð
 ×$Ñ$×,Ñ,Ð8Ð8Ð8Ø×$Ñ$×,Ñ,×@Ñ@ÐLÐLÐLØ×$Ñ$×,Ñ,×@Ñ@×HÑHÈDÑPÐPÐPà×!Ñ!×)Ñ)×=Ñ=×EÑEØ× Ñ ×(Ñ(×<Ñ<×DÑDòEð	
ðEð
 ˜l×/Ñ/Ñ/Ð/Ð/Ø× Ñ  Ñ-×4Ñ4Ð@Ð@Ð@Ø× Ñ  Ñ-×4Ñ4×>Ñ>ÐJÐJÐJØ× Ñ  Ñ-×4Ñ4×>Ñ>×FÑFÈ$ÑNÐNÐNà×Ñ˜kÑ*×1Ñ1×;Ñ;×CÑCØ�}‰}˜[Ñ)×0Ñ0×:Ñ:×BÑBòCð	
ðCð × Ñ  Ñ-×4Ñ4×JÑJÐVÐVÐVà×Ñ˜kÑ*×1Ñ1×GÑG×OÑOÐSXÑXð	
ØXð ×Ñ˜kÑ*×1Ñ1×GÑG×OÑOØ�}‰}˜[Ñ)×0Ñ0×FÑF×NÑNòOð	
ðOð
 ˜|×0Ñ0Ñ0Ð0Ð0Ø× Ñ  Ñ.×9Ñ9ÐEÐEÐEØ× Ñ  Ñ.×9Ñ9×FÑFÐRÐRÐRØ× Ñ  Ñ.×9Ñ9×FÑF×NÑNÐRVÑVÐVÐVà×Ñ˜lÑ+×6Ñ6×CÑC×KÑKØ�}‰}˜\Ñ*×5Ñ5×BÑB×JÑJòKð	
ðKð
 ×Ñ˜lÑ+×6Ñ6×CÑC×JÑJ×UÑUØòð	
ðð �M‰M˜,Ñ'×2Ñ2×?Ñ?×FÑF×QÑQØòð	
ðð
 ×Ñ˜lÑ+×6Ñ6×CÑC×JÑJ×PÑPÐTXÒXð	
ØXð ×ÑØñç‰jŸ™§f¡f×-?Ñ-?Øðð	
ðð ×ÑØñç‰jŸ™§f¡f×-?Ñ-?ÇÁÃØòð	
ðð �M‰MØñç‰jŸ™§f¡f×-?Ñ-?ÇÁÃØòð	
ñr"   c                 óÌ  — t        «       }t        dd¬«      }|j                  |¬«       |j                  «       }|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 ‚y)z^Test serialization/deserialization of Schema with vector config where embedding_function=None.rO   N)r’   r}   r5   r[   r`   ra   r^   Fr2   r’   r}   rÎ   Úlegacyrj   rZ   Trl   rY   )r   r   rt   rÕ   rØ   r[   r`   ra   r^   r2   r’   r}   rj   rl   )	r   rÙ   rœ   rÚ   r[   Úvector_jsonrj   Úembedding_vector_jsonrÝ   s	            r    Ú3test_serialize_deserialize_with_vector_config_no_efzATestNewSchema.test_serialize_deserialize_with_vector_config_no_efÄ  sU  € ô “8ˆÜ)ØØ#ô
ˆð 	×Ñ ]ÐÔ3ð ×.Ñ.Ó0ˆ	ð ˜ZÑ(ˆØ˜xÑ'Ð'Ð'Ø ¨,Ñ!7Ñ7Ð7Ð7Ø˜|Ñ,¨^Ñ<ˆØ˜9Ñ%¨Ñ.Ð.Ð.Ø˜8Ñ$ WÑ-°Ò9Ð9Ð9à˜8Ñ$Ð%9Ñ:¸6ÑBÀhÒNÐNÐNð ˜Ñ ˆØ˜tÑ#Ð#Ð#Ø $ \Ñ 2°<Ñ @ÀÑ PÐØ$ YÑ/°4Ñ7Ð7Ð7à! (Ñ+¨GÑ4¸Ò@ð	
Ø@à$ XÑ.¨|Ñ<ÀÒKÐKÐKà$ XÑ.Ð/CÑDÀVÑLÐPXÒXÐXÐXô ×3Ñ3°IÓ>ˆð ×$Ñ$×/Ñ/Ð;Ð;Ð;Ø×$Ñ$×/Ñ/×<Ñ<ÐHÐHÐHØ×$Ñ$×/Ñ/×<Ñ<×DÑDÈÑMÐMÐMà×!Ñ!×,Ñ,×9Ñ9×@Ñ@×FÑFÈ(ÒRð	
ØRð ×!Ñ!×,Ñ,×9Ñ9×@Ñ@×SÑSØðð	
ðð
 ˜|×0Ñ0Ñ0Ð0Ð0Ø× Ñ  Ñ.×9Ñ9ÐEÐEÐEØ× Ñ  Ñ.×9Ñ9×FÑFÐRÐRÐRØ× Ñ  Ñ.×9Ñ9×FÑF×NÑNÐRVÑVÐVÐVà×Ñ˜lÑ+×6Ñ6×CÑC×JÑJ×PÑPØòð	
ðð ×Ñ˜lÑ+×6Ñ6×CÑC×JÑJ×UÑUØòð	
ðð
 ×ÑØñç‰jŸ™§f¡f×-?Ñ-?Øðð	
ñr"   c                 ó,  — ddl m} t        |d<   	 t        «       }t        d¬«      }t	        ddd¬	«      }t        |d
|¬«      }|j                  |¬«       |j                  «       }|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                  j!                  «       dk(  sJ ‚|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                  j!                  «       dk(  sJ ‚|j,                  d   j                  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= y"y"# d|v r|d= w w xY w)#zLTest serialization/deserialization of Schema with custom embedding function.r   ©Úknown_embedding_functionsrJ   Úcustom_model_v3r¢   é   é0   é€   r¦   rS   ©r}   r’   rª   r5   r[   r`   ra   r^   Fr2   r’   r}   rÎ   rÏ   r   r?   rª   r§   r¨   r©   rj   rZ   Trl   rY   N)Ú"chromadb.utils.embedding_functionsræ   r>   r   r   r   rt   rÕ   rØ   r[   r`   ra   r^   r2   r’   r}   r   r1   rª   r§   r¨   r©   rj   rl   )r   ræ   rÙ   Ú	custom_efr¬   rœ   rÚ   r[   rá   rj   râ   rÝ   Ú	ef_configÚef_config_embeddings                 r    Ú)test_serialize_deserialize_with_custom_efz7TestNewSchema.test_serialize_deserialize_with_custom_ef  s  € õ 	Qä6KÐ!Ð"2Ñ3ðk	@ä“xˆHÜ-Ð9JÔKˆIÜ)Ø #°2ÀôˆKô .Ø#,ØØ ôˆMð
 ×!Ñ!¨Ð!Ô7ð !×2Ñ2Ó4ˆIð ! Ñ,ˆHØ 8Ñ+Ð+Ð+Ø! X¨lÑ%;Ñ;Ð;Ð;Ø" <Ñ0°Ñ@ˆKØ˜yÑ)¨UÑ2Ð2Ð2Ø˜xÑ(¨Ñ1°TÒ9Ð9Ð9à˜xÑ(Ð)=Ñ>¸vÑFÈ'ÒQÐQÐQà˜HÑ%Ð&:Ñ;¸FÑCÐGWÒWðØWð ˜HÑ%Ð&:Ñ;¸HÑEÀlÑSØ$ò%ðð%ð ˜[¨Ñ2Ñ2Ð2Ð2Ø˜xÑ(¨Ñ0Ð1BÑCÀsÒJÐJÐJØ˜xÑ(¨Ñ0°ÑAÀRÒGÐGÐGØ˜xÑ(¨Ñ0°Ñ=ÀÒDÐDÐDð ˜VÑ$ˆDØ 4Ñ'Ð'Ð'Ø$(¨Ñ$6°|Ñ$DÀ^Ñ$TÐ!à% iÑ0°DÑ8ðØ8ð & hÑ/°Ñ8¸DÒ@ðØ@ð & hÑ/°Ñ=ÀÒLðØLð & hÑ/Ð0DÑEÀfÑMÐQXÒXðØXð & hÑ/Ð0DÑEÀfÑMØ#ò$ðð$ð & hÑ/Ð0DÑEÀhÑOØ ñð %ò%ðð%ð Ð2°8Ñ<Ñ<Ð<Ð<Ø(¨Ñ2°6Ñ:Ð;LÑMÐQTÒTÐTÐTØ(¨Ñ2°6Ñ:¸?ÑKÈrÒQÐQÐQØ(¨Ñ2°6Ñ:¸;ÑGÈ3ÒNÐNÐNô "×7Ñ7¸	ÓBˆLð  ×(Ñ(×3Ñ3Ð?Ð?Ð?Ø×(Ñ(×3Ñ3×@Ñ@ÐLÐLÐLØ×(Ñ(×3Ñ3×@Ñ@×HÑHÈEÑQÐQÐQà×%Ñ%×0Ñ0×=Ñ=×DÑD×JÑJÈdÒRðØRð ×%Ñ%×0Ñ0×=Ñ=×DÑD×WÑWØðððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×WÑW×\Ñ\Ó^Ø#ò$ðð$ð %×-Ñ-×8Ñ8×EÑE×LÑL×_Ñ_×jÑjÓlˆIØ˜\Ñ*Ð.?Ò?Ð?Ð?à×(Ñ(×3Ñ3×@Ñ@×GÑG×LÑLÐXÐXÐXà×%Ñ%×0Ñ0×=Ñ=×DÑD×IÑI×YÑYØòððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×IÑI×WÑWØòððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×IÑI×SÑSØòððð
   <×#4Ñ#4Ñ4Ð4Ð4Ø×$Ñ$ \Ñ2×=Ñ=ÐIÐIÐIØ×$Ñ$ \Ñ2×=Ñ=×JÑJÐVÐVÐVà×!Ñ! ,Ñ/×:Ñ:×GÑG×OÑOÐSWÑWðØWð ×!Ñ! ,Ñ/×:Ñ:×GÑG×NÑN×TÑTØòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±Øòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&×1CÑ1CØðððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&×1CÑ1CÇDÁDÃFØ#ò$ðð$ð #/×"3Ñ"3Øñ#ç‰jŸ™§f¡f×-?Ñ-?Ç
Á
Ãð  ð ' |Ñ4Ð8IÒIÐIÐIð ×!Ñ! ,Ñ/×:Ñ:×GÑG×NÑN×SÑSØðððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±·o±oØòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±·m±mØòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±·i±iØòðñð  Ð#<Ñ<Ø-Ð.>Ñ?ð =øÐÐ#<Ñ<Ø-Ð.>Ñ?ð =ús   ‘[.\	 Ü	
\c                 ó¸  — ddl m} t        |d<   	 t        «       }t        d¬«      }t	        dddd	¬
«      }t        |d|¬«      }|j                  |¬«       |j                  «       }|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   j                  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   j                  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                   j#                  «       dk(  sJ ‚|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                  j0                  �J ‚d"|j2                  v sJ ‚|j2                  d"   j                  €J ‚|j2                  d"   j                  j                  €J ‚|j2                  d"   j                  j                  j                  d#u sJ ‚|j2                  d"   j                  j                  j                  j                  dk(  sJ ‚|j2                  d"   j                  j                  j                  j4                  d%k(  sJ ‚|j2                  d"   j                  j                  j                  j                   	 €J ‚|j2                  d"   j                  j                  j                  j                   j#                  «       dk(  sJ ‚|j2                  d"   j                  j                  j                  j                   j%                  «       }|d   dk(  sJ ‚|j2                  d"   j                  j                  j                  j&                  	 €J ‚|j2                  d"   j                  j                  j                  j&                  j(                  dk(  sJ ‚|j2                  d"   j                  j                  j                  j&                  j*                  dk(  sJ ‚|j2                  d"   j                  j                  j                  j&                  j,                  dk(  sJ ‚|j2                  d"   j                  j                  j                  j&                  j.                  d	k(  sJ ‚|j2                  d"   j                  j                  j                  j0                  	 �J ‚	 d|v r|d= y y # d|v r|d= w w xY w)&zETest serialization/deserialization of Schema with SPANN index config.r   rå   rJ   Úspann_modelr¢   r¥   é2   r£   é–   )Úsearch_nprobeÚwrite_nprober§   r©   rO   )r}   r’   Úspannr5   r[   r`   ra   r^   Fr2   r’   r}   rÎ   rÏ   r   r?   r÷   rõ   rö   r§   r©   rª   Nrj   rZ   Trl   rY   )rì   ræ   r>   r   r   r   rt   rÕ   r4   rØ   r[   r`   ra   r^   r2   r’   r}   r   r1   r÷   rõ   rö   r§   r©   rª   rj   rl   )r   ræ   rÙ   rí   Úspann_configrœ   rÚ   r[   rá   rj   râ   rÝ   rî   rï   s                 r    Ú,test_serialize_deserialize_with_spann_configz:TestNewSchema.test_serialize_deserialize_with_spann_configÁ  sd	  € õ 	Qä6KÐ!Ð"2Ñ3ðB	@ä“xˆHÜ-¸ÔGˆIÜ+Ø!°ÀCÐSVôˆLô .Ø#,°HÀLôˆMð ×!Ñ!¨Ð!Ô7ð !×2Ñ2Ó4ˆIð ! Ñ,ˆHØ 8Ñ+Ð+Ð+Ø! X¨lÑ%;Ñ;Ð;Ð;Ø" <Ñ0°Ñ@ˆKØ˜yÑ)¨UÑ2Ð2Ð2Ø˜xÑ(¨Ñ1°XÒ=Ð=Ð=à˜xÑ(Ð)=Ñ>¸vÑFÈ'ÒQÐQÐQà˜HÑ%Ð&:Ñ;¸FÑCÐGWÒWðØWð ˜HÑ%Ð&:Ñ;¸HÑEÀlÑSØ ò!ðð!ð ˜k¨(Ñ3Ñ3Ð3Ð3Ø˜xÑ(¨Ñ1°/ÑBÀcÒIÐIÐIØ˜xÑ(¨Ñ1°.ÑAÀRÒGÐGÐGØ˜xÑ(¨Ñ1Ð2CÑDÈÒKÐKÐKØ˜xÑ(¨Ñ1°+Ñ>À#ÒEÐEÐEà˜xÑ(×,Ñ,¨VÓ4Ð<Ð<Ð<ð ˜VÑ$ˆDØ 4Ñ'Ð'Ð'Ø$(¨Ñ$6°|Ñ$DÀ^Ñ$TÐ!à% iÑ0°DÑ8ðØ8ð & hÑ/°Ñ8¸HÒDðØDð & hÑ/°Ñ=ÀÒLðØLð & hÑ/Ð0DÑEÀfÑMÐQXÒXðØXð & hÑ/Ð0DÑEÀfÑMØ#ò$ðð$ð & hÑ/Ð0DÑEÀhÑOØ ñð !ò!ðð!ð Ð3°HÑ=Ñ=Ð=Ð=Ø(¨Ñ2°7Ñ;¸OÑLÐPSÒSÐSÐSØ(¨Ñ2°7Ñ;¸NÑKÈrÒQÐQÐQØ(¨Ñ2°7Ñ;Ð<MÑNÐRUÒUÐUÐUØ(¨Ñ2°7Ñ;¸KÑHÈCÒOÐOÐOà(¨Ñ2×6Ñ6°vÓ>ÐFÐFÐFô "×7Ñ7¸	ÓBˆLð  ×(Ñ(×3Ñ3Ð?Ð?Ð?Ø×(Ñ(×3Ñ3×@Ñ@ÐLÐLÐLØ×(Ñ(×3Ñ3×@Ñ@×HÑHÈEÑQÐQÐQà×%Ñ%×0Ñ0×=Ñ=×DÑD×JÑJÈhÒVðØVð ×%Ñ%×0Ñ0×=Ñ=×DÑD×WÑWØðððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×WÑW×\Ñ\Ó^Ø#ò$ðð$ð %×-Ñ-×8Ñ8×EÑE×LÑL×_Ñ_×jÑjÓlˆIØ˜\Ñ*¨mÒ;Ð;Ð;ð ×%Ñ%×0Ñ0×=Ñ=×DÑD×JÑJÐVðØVð ×%Ñ%×0Ñ0×=Ñ=×DÑD×JÑJ×XÑXØòððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×JÑJ×WÑWØòððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×JÑJ×ZÑZØòððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×JÑJ×TÑTØòððð  ×(Ñ(×3Ñ3×@Ñ@×GÑG×LÑLÐTÐTÐTð   <×#4Ñ#4Ñ4Ð4Ð4Ø×$Ñ$ \Ñ2×=Ñ=ÐIÐIÐIØ×$Ñ$ \Ñ2×=Ñ=×JÑJÐVÐVÐVà×!Ñ! ,Ñ/×:Ñ:×GÑG×OÑOÐSWÑWðØWð ×!Ñ! ,Ñ/×:Ñ:×GÑG×NÑN×TÑTØòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±Øòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&×1CÑ1CØðððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&×1CÑ1CÇDÁDÃFØ#ò$ðð$ð #/×"3Ñ"3Øñ#ç‰jŸ™§f¡f×-?Ñ-?Ç
Á
Ãð  ð ' |Ñ4¸ÒEÐEÐEð ×!Ñ! ,Ñ/×:Ñ:×GÑG×NÑN×TÑTØðððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±·}±}Øòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±·|±|Øòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±·±Øòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±·y±yØòððð ×!Ñ! ,Ñ/×:Ñ:×GÑG×NÑN×SÑSØððñð
  Ð#<Ñ<Ø-Ð.>Ñ?ð =øÐÐ#<Ñ<Ø-Ð.>Ñ?ð =ús   ‘`4a á
ac                 óx  — ddl m} t        |d<   t        |d<   	 t	        «       }t        d¬«      }t        dd¬	«      }t        |d
|¬«      }|j                  |¬«       t        d¬«      }t        |d¬«      }|j                  |d¬«       t        «       }|j                  |d¬«       t        «       }	|j                  |	d¬«       t        «       }
|j                  |
d¬«       |j                  «       }|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   j                  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&                  j0                  	 €J ‚|j                   j"                  j$                  j&                  j0                  j3                  «       dk(  sJ ‚d|j4                  v sJ ‚|j4                  d   j6                  €J ‚|j4                  d   j6                  j8                  	 €J ‚|j4                  d   j6                  j8                  j:                  d$u sJ ‚|j4                  d   j6                  j8                  j&                  j<                  dk(  sJ ‚|j4                  d   j>                  �J ‚|j4                  d   j"                  �J ‚|j4                  d   j@                  �J ‚d|j4                  v sJ ‚|j4                  d   j>                  €J ‚|j4                  d   j>                  jB                  €J ‚|j4                  d   j>                  jB                  j:                  d/u sJ ‚|j4                  d   j6                  �J ‚|j4                  d   j"                  �J ‚d|j4                  v sJ ‚|j4                  d   j@                  €J ‚|j4                  d   j@                  jD                  €J ‚|j4                  d   j@                  jD                  j:                  d/u sJ ‚|j4                  d   j>                  �J ‚|j4                  d   j"                  �J ‚d|j4                  v sJ ‚|j4                  d   jF                  €J ‚|j4                  d   jF                  jH                  €J ‚|j4                  d   jF                  jH                  j:                  d/u sJ ‚|j4                  d   j>                  �J ‚|j4                  d   j6                  �J ‚d |j4                  v sJ ‚|j4                  d    j"                  €J ‚|j4                  d    j"                  j$                  €J ‚|j4                  d    j"                  j$                  j&                  j(                  d
k(  sJ ‚|j4                  d    j"                  j$                  j&                  j<                  dk(  sJ ‚|j4                  d    j"                  j$                  j&                  j*                  	 €J ‚|j4                  d    j"                  j$                  j&                  j*                  j,                  dk(  sJ ‚|j                   j>                  €J ‚|j                   j>                  jB                  €J ‚|j                   j>                  jB                  j:                  d$u sJ ‚|j                   j@                  €J ‚|j                   j@                  jD                  €J ‚|j                   j@                  jD                  j:                  d$u sJ ‚|j                   j6                  €J ‚|j                   j6                  j8                  €J ‚|j                   j6                  j8                  j:                  d/u sJ ‚	 d|v r|d= d|v r|d= y5y5# d|v r|d= d|v r|d= w w xY w)6zLTest serialization/deserialization with multiple mixed schema modifications.r   rå   rJ   r-   Úmixed_test_modelr¢   i,  é@   ©r§   r¨   rS   rë   r5   Úsparse_modelrz   Ú
text_fieldr|   Úembeddings_fieldrr   ÚtagsÚcountÚpricer[   rj   r`   ra   r2   r’   rª   r§   r¨   rY   rZ   rb   rc   r^   Trl   r}   rÎ   rÏ   r   r\   rÒ   rÓ   rÔ   r_   Fr]   re   rg   r?   r÷   N)%rì   ræ   r>   r   r   r   r   rt   r   r   r…   r   r	   rÕ   r4   rØ   r[   r`   ra   r2   r’   rª   r§   r¨   r}   r   rj   rb   rc   r^   rl   r\   rd   r_   re   rf   rg   )r   ræ   rÙ   rí   r¬   rœ   Ú	sparse_efr�   rŽ   rÊ   Úfloat_configrÚ   r[   rj   Ú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ä6KÐ!Ð"2Ñ3Ü3NÐ! -Ñ0ðO	=ä“xˆHô .Ð9KÔLˆIÜ)¸#ÈRÔPˆKÜ-Ø#,°D¸{ôˆMð ×!Ñ!¨Ð!Ô7ô 4¸ÔHˆIÜ3Ø#,¸ôˆMð ×!Ñ!¨Ð<NÐ!ÔOô 6Ó7ˆMØ×!Ñ!¨¸FÐ!ÔCô 0Ó1ˆJØ×!Ñ!¨¸Ð!ÔAô 4Ó5ˆLØ×!Ñ!¨¸7Ð!ÔCð !×2Ñ2Ó4ˆIð ! Ñ,ˆHØ˜VÑ$ˆDð ˜LÑ)¨.Ñ9¸(ÑCÀGÑLÐPTÒ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ØÐ'<Ñ<Ð<Ð<ØÐ 5Ñ5Ð5Ð5ØÐ"7Ñ7Ð7Ð7ØÐ!6Ñ6Ð6Ð6ð ˜V™ˆIØ˜yÑ(Ð(Ð(Ø˜XÑ&Ð'>Ñ?À	ÑJÈeÑSÐSÐSØ˜XÑ&Ð'>Ñ?ÀÑIÈRÒOÐOÐOà i°Ñ&9Ñ9Ð9Ð9à"¨)Ñ3Ð3Ð3Ø yÑ0Ð0Ð0Ø 	Ñ)Ð)Ð)Ø )Ñ+Ð+Ð+Ø Ñ*Ð*Ð*ð ˜g™ˆJØ˜JÑ&Ð&Ð&Ø˜eÑ$Ð%9Ñ:¸9ÑEÈÑNÐNÐNØ˜eÑ$Ð%9Ñ:¸8ÑDÈÒJÐJÐJà :Ñ-Ð-Ð-Ø"¨*Ñ4Ð4Ð4Ø zÑ1Ð1Ð1Ø *Ñ,Ð,Ð,Ø Ñ+Ð+Ð+ð ˜g™ˆJØ˜jÑ(Ð(Ð(Ø˜gÑ&Ð'=Ñ>¸yÑIÈUÑRÐRÐRØ˜gÑ&Ð'=Ñ>¸xÑHÈBÒNÐNÐNà :Ñ-Ð-Ð-Ø"¨*Ñ4Ð4Ð4Ø zÑ1Ð1Ð1Ø 
Ñ*Ð*Ð*Ø Ñ+Ð+Ð+ð " ,Ñ/ˆNØ >Ñ1Ð1Ð1Ø! ,Ñ/°Ñ?À	ÑJÈdÑRÐRÐRà˜|Ñ,¨^Ñ<¸XÑFÀwÑOÐSWÒ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Øðððð  >Ñ1Ð1Ð1Ø"¨.Ñ8Ð8Ð8Ø Ñ.Ð.Ð.Ø .Ñ0Ð0Ð0Ø Ñ/Ð/Ð/ð ! Ñ-ˆMØ˜}Ñ,Ð,Ð,Ø  Ñ*¨;Ñ7¸	ÑBÀdÑJÐJÐJØ  Ñ*¨;Ñ7¸ÑAÀRÒGÐGÐGØ  Ñ*Ð+BÑCÀIÑNÐRWÑWÐWÐWØ  Ñ*Ð+BÑCÀHÑMÐQSÒSÐSÐSà"¨-Ñ7Ð7Ð7Ø }Ñ4Ð4Ð4Ø Ñ-Ð-Ð-Ø -Ñ/Ð/Ð/Ø Ñ.Ð.Ð.ô "×7Ñ7¸	ÓBˆLð  ×(Ñ(×3Ñ3Ð?Ð?Ð?Ø×(Ñ(×3Ñ3×@Ñ@ÐLÐLÐLØ×(Ñ(×3Ñ3×@Ñ@×GÑG×MÑMÐQUÒUÐUÐUØ×(Ñ(×3Ñ3×@Ñ@×GÑG×LÑLÐXÐXÐXà×%Ñ%×0Ñ0×=Ñ=×DÑD×IÑI×YÑYØòððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×IÑI×WÑWØòððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×WÑWØðððð ×%Ñ%×0Ñ0×=Ñ=×DÑD×WÑW×\Ñ\Ó^Ø#ò$ðð$ð
 &¨×):Ñ):Ñ:Ð:Ð:Ø×$Ñ$Ð%7Ñ8×FÑFÐRÐRÐRà×!Ñ!Ð"4Ñ5×CÑC×WÑWØðððð ×!Ñ!Ø&ñç‘-× 3Ñ 3·G±GØñððð ×!Ñ!Ø&ñç‘-× 3Ñ 3·F±F¿:¹:Øò ðð ð  ×$Ñ$Ð%7Ñ8×?Ñ?ÐGÐGÐGØ×$Ñ$Ð%7Ñ8×CÑCÐKÐKÐKØ×$Ñ$Ð%7Ñ8×BÑBÐJÐJÐJð ˜\×.Ñ.Ñ.Ð.Ð.Ø×$Ñ$ VÑ,×3Ñ3Ð?Ð?Ð?Ø×$Ñ$ VÑ,×3Ñ3×IÑIÐUÐUÐUà×!Ñ! &Ñ)×0Ñ0×FÑF×NÑNÐRWÑWðØWð  ×$Ñ$ VÑ,×:Ñ:ÐBÐBÐBØ×$Ñ$ VÑ,×7Ñ7Ð?Ð?Ð?ð ˜l×/Ñ/Ñ/Ð/Ð/Ø×$Ñ$ WÑ-×7Ñ7ÐCÐCÐCØ×$Ñ$ WÑ-×7Ñ7×JÑJÐVÐVÐVà×!Ñ! 'Ñ*×4Ñ4×GÑG×OÑOÐSXÑXðØXð  ×$Ñ$ WÑ-×4Ñ4Ð<Ð<Ð<Ø×$Ñ$ WÑ-×8Ñ8Ð@Ð@Ð@ð ˜l×/Ñ/Ñ/Ð/Ð/Ø×$Ñ$ WÑ-×9Ñ9ÐEÐEÐEà×!Ñ! 'Ñ*×6Ñ6×KÑKÐWðØWð ×!Ñ! 'Ñ*×6Ñ6×KÑK×SÑSØñððð  ×$Ñ$ WÑ-×4Ñ4Ð<Ð<Ð<Ø×$Ñ$ WÑ-×;Ñ;ÐCÐCÐCð   <×#4Ñ#4Ñ4Ð4Ð4Ø×$Ñ$ \Ñ2×=Ñ=ÐIÐIÐIØ×$Ñ$ \Ñ2×=Ñ=×JÑJÐVÐVÐVà×!Ñ! ,Ñ/×:Ñ:×GÑG×NÑN×TÑTØòððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±Øòððð ×!Ñ! ,Ñ/×:Ñ:×GÑG×NÑN×SÑSØðððð ×!Ñ!Ø ñç‘*Ÿ\™\¯&©&·±·o±oØòððð  ×(Ñ(×/Ñ/Ð;Ð;Ð;Ø×(Ñ(×/Ñ/×EÑEÐQÐQÐQà×%Ñ%×,Ñ,×BÑB×JÑJÈdÑRðØRà×(Ñ(×2Ñ2Ð>Ð>Ð>Ø×(Ñ(×2Ñ2×EÑEÐQÐQÐQà×%Ñ%×/Ñ/×BÑB×JÑJÈdÑRðØRà×(Ñ(×6Ñ6ÐBÐBÐBØ×(Ñ(×6Ñ6×JÑJÐVÐVÐVà×%Ñ%×3Ñ3×GÑG×OÑOÐSXÑXðÙXð  Ð#<Ñ<Ø-Ð.>Ð?ØÐ 9Ñ9Ø-¨mÑ<ð :øð  Ð#<Ñ<Ø-Ð.>Ð?ØÐ 9Ñ9Ø-¨mÑ<ð :ús   šm=n( î(n9c                 óô  — t        «       }t        dt        «       ¬«      }|j                  |d¬«       t	        «       }|j                  |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 ‚|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 ‚y)z;Test that multiple index types can coexist on the same key.Úsourcer‰   Úmulti_fieldrr   NTrj   rb   r\   rc   r^   r_   )r   r   r   rt   r   rj   rb   rc   r^   r\   r_   r`   rd   rf   rh   rÕ   rØ   )	r   rn   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ô
ˆð 	×Ñ =°mÐÔDô 2Ó3ˆØ×Ñ =°mÐÔDð  §¡Ñ+Ð+Ð+Ø—k‘k -Ñ0ˆØ×(Ñ(Ð4Ð4Ð4Ø×(Ñ(×<Ñ<ÐHÐHÐHØ×(Ñ(×<Ñ<×DÑDÈÑLÐLÐLà×!Ñ!Ð-Ð-Ð-Ø×!Ñ!×7Ñ7ÐCÐCÐCØ×!Ñ!×7Ñ7×?Ñ?À4ÑGÐGÐGð �{‰{˜=Ñ)×4Ñ4Ð<Ð<Ð<Ø�{‰{˜=Ñ)×3Ñ3Ð;Ð;Ð;Ø�{‰{˜=Ñ)×5Ñ5Ð=Ð=Ð=Ø�{‰{˜=Ñ)×1Ñ1Ð9Ð9Ð9ð ×,Ñ,Ó.ˆ	Ø$ VÑ,¨]Ñ;ÐØÐ"2Ñ2Ð2Ð2ØÐ+Ñ+Ð+Ð+à˜_Ñ-Ð.CÑDÀYÑOÐSWÑWð	
ØWà Ñ)Ð*AÑBÀ9ÑMÐQUÑUÐUÐUô ×3Ñ3°IÓ>ˆØ × 1Ñ 1Ñ1Ð1Ð1Ø&×+Ñ+¨MÑ:ˆØ×,Ñ,Ð8Ð8Ð8Ø×,Ñ,×@Ñ@ÐLÐLÐLØ×,Ñ,×@Ñ@×HÑHÈDÑPÐPÐPØ×%Ñ%Ð1Ð1Ð1Ø×%Ñ%×;Ñ;ÐGÐGÐGØ×%Ñ%×;Ñ;×CÑCÀtÑKÐKÑKr"   c                 ó„  — t        «       }t        «       }|j                  |d¬«       d|j                  v sJ ‚|j                  d   }|j                  €J ‚|j                  j
                  €J ‚|j                  j
                  j                  du sJ ‚|j                  |d¬«       d|j                  v sJ ‚|j                  d   }|j                  €J ‚|j                  j
                  €J ‚|j                  j
                  j                  du sJ ‚|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 ‚y)
zcTest that disabling an index reverts to default behavior (key may still exist with disabled state).Ú
temp_fieldrr   NTFrj   r\   r_   r^   )
r   r   rt   rj   r\   r_   r^   r…   rÕ   rØ   )	r   rn   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ˆØ×Ñ =°lÐÔCð ˜vŸ{™{Ñ*Ð*Ð*Ø#Ÿ[™[¨Ñ6ÐØ!×(Ñ(Ð4Ð4Ð4Ø!×(Ñ(×>Ñ>ÐJÐJÐJØ!×(Ñ(×>Ñ>×FÑFÈ$ÑNÐNÐNð 	×Ñ =°lÐÔCð ˜vŸ{™{Ñ*Ð*Ð*Ø—[‘[ Ñ.ˆ
Ø× Ñ Ð,Ð,Ð,Ø× Ñ ×6Ñ6ÐBÐBÐBØ× Ñ ×6Ñ6×>Ñ>À%ÑGÐGÐGð ×,Ñ,Ó.ˆ	Ø˜y¨Ñ0Ñ0Ð0Ð0Ø# FÑ+¨LÑ9ˆØ˜?Ñ*Ð*Ð*Ø˜xÑ(Ð)@ÑAÀ)ÑLÐPUÑUÐUÐUô ×3Ñ3°IÓ>ˆØ˜|×0Ñ0Ñ0Ð0Ð0Ø%×*Ñ*¨<Ñ8ˆØ×$Ñ$Ð0Ð0Ð0Ø×$Ñ$×:Ñ:ÐFÐFÐFØ×$Ñ$×:Ñ:×BÑBÀeÑKÐKÑKr"   c                 óª  — t        «       }t        «       }t        j                  t        d¬«      5  |j                  |d¬«       ddd«       t        j                  t        d¬«      5  |j                  t        «       d¬«       ddd«       t        «       }|j                  |d¬«       t        j                  t        d¬«      5  |j                  «        ddd«       t        j                  t        d	¬«      5  |j                  «        ddd«       t        j                  t        d
¬«      5  |j                  d¬«       ddd«       t        j                  t        d¬«      5  |j                  d¬«       ddd«       t        j                  t        d¬«      5  |j                  |¬«       ddd«       t        j                  t        d¬«      5  |j                  |¬«       ddd«       t        j                  t        d¬«      5  |j                  |d¬«       ddd«       t        j                  t        d¬«      5  |j                  |d¬«       ddd«       y# 1 sw Y   �ŒxY w# 1 sw Y   �ŒãxY w# 1 sw Y   �ŒŸxY w# 1 sw Y   �ŒxxY w# 1 sw Y   �ŒOxY w# 1 sw Y   �Œ&xY w# 1 sw Y   ŒüxY w# 1 sw Y   ŒÒxY w# 1 sw Y   Œ§xY w# 1 sw Y   yxY w)z6Test that invalid operations raise appropriate errors.r˜   r”   rZ   rr   Nr—   rY   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½   r5   r¾   r“   Úcustom_fieldr±   )	r   r   r™   rš   r›   rt   r   r   r…   rÀ   s       r    Ú&test_error_handling_invalid_operationsz4TestNewSchema.test_error_handling_invalid_operationsA  s•  € ä“ˆô *Ó+ˆÜ�]‰]ÜÐOô
ñ 	Hð ×Ñ }¸,ÐÔG÷	Hô �]‰]ÜÐNô
ñ 	Uð ×ÑÔ'@Ó'BÈÐÔT÷	Uô $Ó%ˆ
Ø×Ñ :°;ÐÔ?ô �]‰]œ:Ð-IÔJñ 	"Ø×ÑÔ!÷	"ô �]‰]œ:Ð-UÔVñ 	"Ø×ÑÔ!÷	"ô �]‰]ÜÐMô
ñ 	-ð ×Ñ GÐÔ,÷	-ô �]‰]ÜÐNô
ñ 	-ð ×Ñ GÐÔ,÷	-ô �]‰]ÜÐPô
ñ 	6ð ×Ñ }ÐÔ5÷	6ô �]‰]ÜÐUô
ñ 	3ð ×Ñ zÐÔ2÷	3ô �]‰]ÜÐOô
ñ 	Jð ×Ñ }¸.ÐÔI÷	Jô �]‰]ÜÐNô
ñ 	Gð ×Ñ z°~ÐÔF÷	Gð 	G÷m	Hñ 	Hú÷	Uñ 	Uú÷	"ñ 	"ú÷	"ñ 	"ú÷	-ñ 	-ú÷	-ñ 	-ú÷	6ð 	6ú÷	3ð 	3ú÷	Jð 	Jú÷	Gð 	Gúsw   °IÁ'I$ÃI1Ã7I>Ä+JÅ!JÆJ%ÇJ1ÈJ=È:K	ÉI!É$I.É1I;É>JÊJÊJ"Ê%J.Ê1J:Ê=KË	Kc                 ó(  — t        «       }|j                  «       }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 ‚y)z;Test serialization/deserialization of an unmodified schema.rj   rX   rY   rZ   NTF)r   rÕ   rk   rØ   r[   r\   r_   r^   r]   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   )r   rÙ   rÚ   rÝ   r[   s        r    Útest_empty_schema_serializationz-TestNewSchema.test_empty_schema_serialization‚  s§  € ô “8ˆð ×.Ñ.Ó0ˆ	ô �9˜VÑ$Ó%¨Ò*Ð*Ð*Ø˜i¨Ñ/Ñ/Ð/Ð/Ø˜y¨Ñ0Ñ0Ð0Ð0ô ×3Ñ3°IÓ>ˆð  ×(Ñ(ˆØ�‰Ð*Ð*Ð*Ø�‰×4Ñ4Ð@Ð@Ð@Ø�‰×4Ñ4×<Ñ<ÀÑDÐDÐDØ�‰×(Ñ(Ð4Ð4Ð4Ø�‰×(Ñ(×0Ñ0°EÑ9Ð9Ð9Ø×"Ñ"Ð.Ð.Ð.Ø×"Ñ"×/Ñ/Ð;Ð;Ð;Ø×"Ñ"×/Ñ/×7Ñ7¸5Ñ@Ð@Ð@Ø×%Ñ%Ð1Ð1Ð1Ø×%Ñ%×9Ñ9ÐEÐEÐEØ×%Ñ%×9Ñ9×AÑAÀUÑJÐJÐJØ×!Ñ!Ð-Ð-Ð-Ø×!Ñ!×4Ñ4Ð@Ð@Ð@Ø×!Ñ!×4Ñ4×<Ñ<ÀÑDÐDÐDØ×#Ñ#Ð/Ð/Ð/Ø×#Ñ#×8Ñ8ÐDÐDÐDØ×#Ñ#×8Ñ8×@Ñ@ÀDÑHÐHÐHØ×ÑÐ+Ð+Ð+Ø×Ñ×3Ñ3Ð?Ð?Ð?Ø×Ñ×3Ñ3×;Ñ;¸tÑCÐCÐCô �<×$Ñ$Ó%¨Ò*Ð*Ð*Ø˜l×/Ñ/Ñ/Ð/Ð/Ø˜|×0Ñ0Ñ0Ð0Ñ0r"   c                 ó"	  — ddl m} t        |d<   	 t        «       }t        d¬«      }t	        dd¬«      }t        |d	|¬
«      }|j                  |¬«       |j                  t        dt        «       ¬«      d¬«       |j                  t        «       d¬«       |j                  «       }t        j                  |«      }|j                  «       }t        j                  |«      }	|	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*                  j-                  «       dk(  sJ ‚d|j.                  v sJ ‚|j.                  d   }|j0                  €J ‚|j0                  j2                  €J ‚|j0                  j2                  j4                  du sJ ‚|j0                  j2                  j                   j6                  dk(  sJ ‚d|j.                  v sJ ‚|j.                  d   }|j8                  €J ‚|j8                  j:                  €J ‚|j8                  j:                  j4                  du r�Œ²J ‚ t=        |j.                  «      t=        |	j.                  «      cxk(  rt=        |j.                  «      k(  sJ ‚ J ‚t?        |j.                  j/                  «       «      t?        |	j.                  j/                  «       «      cxk(  r't?        |j.                  j/                  «       «      k(  sJ ‚ J ‚	 d|v r|d= yy# d|v r|d= w w xY w)zRTest that multiple serialization/deserialization cycles preserve schema integrity.r   rå   rJ   Úroundtrip_modelr¢   rô   é(   rý   rO   rë   r5   Útextr‰   Ú
embeddingsrr   r  NTF) rì   ræ   r>   r   r   r   rt   r   r   r…   r   rÕ   rØ   r[   r`   ra   r2   r’   rª   r§   r¨   r}   r   rj   rb   rc   r^   rl   r\   r_   rk   Úset)r   ræ   rÙ   rí   r¬   rœ   Újson1Úschema1Újson2Úschema2Újson3Úschema3rn   Úembeddings_overrideÚtags_overrides                  r    Ú.test_multiple_serialize_deserialize_roundtripsz<TestNewSchema.test_multiple_serialize_deserialize_roundtrips®  sR  € õ 	Qä6KÐ!Ð"2Ñ3ðU	@ä“xˆHÜ-Ð9JÔKˆIÜ)¸#ÈRÔPˆKÜ-Ø#,°HÀ;ôˆMð ×!Ñ!¨Ð!Ô7Ø×!Ñ!Ü.Ø%Ô:UÓ:Wôð !ð	 "ô ð ×!Ñ!Ô)BÓ)DÈ&Ð!ÔQð ×.Ñ.Ó0ˆEÜ×2Ñ2°5Ó9ˆGð ×-Ñ-Ó/ˆEÜ×2Ñ2°5Ó9ˆGð ×-Ñ-Ó/ˆEÜ×2Ñ2°5Ó9ˆGð # G¨WÐ5ó )S�Ø—‘×1Ñ1Ð=Ð=Ð=Ø—‘×1Ñ1×>Ñ>ÐJÐJÐJØ—‘×1Ñ1×>Ñ>×EÑE×KÑKÈxÒWÐWÐWØ—‘×1Ñ1×>Ñ>×EÑE×JÑJÐVÐVÐVà—O‘O×.Ñ.×;Ñ;×BÑB×GÑG×WÑWØòððð —O‘O×.Ñ.×;Ñ;×BÑB×GÑG×UÑUØòððð —O‘O×.Ñ.×;Ñ;×BÑB×UÑUØð ðð ð —O‘O×.Ñ.×;Ñ;×BÑB×UÑU×ZÑZÓ\Ø'ò(ðð(ð
 $ v§{¡{Ñ2Ð2Ð2Ø&,§k¡k°,Ñ&?Ð#Ø*×8Ñ8ÐDÐDÐDØ*×8Ñ8×LÑLÐXÐXÐXà'×5Ñ5×IÑI×QÑQØñððð (×5Ñ5×IÑI×PÑP×[Ñ[Øòððð
  §¡Ñ,Ð,Ð,Ø &§¡¨FÑ 3�Ø$×+Ñ+Ð7Ð7Ð7Ø$×+Ñ+×AÑAÐMÐMÐMØ$×+Ñ+×AÑA×IÑIÈUÓRÐRÐRðS)SôX �w—|‘|Ó$¬¨G¯L©LÓ(9ÔN¼SÀÇÁÓ=NÒNÐNÑNÐNÐNä�G—L‘L×%Ñ%Ó'Ó(Ü�w—|‘|×(Ñ(Ó*Ó+ô,ä�w—|‘|×(Ñ(Ó*Ó+ò,ðñ,ðñ,ð  Ð#<Ñ<Ø-Ð.>Ñ?ð =øÐÐ#<Ñ<Ø-Ð.>Ñ?ð =ús   ‘N(R Î;B?R Ò
Rc                 ó@  — t        «       }t        d«      D ]u  }d|› �}|dk(  r*|j                  t        d|› �t	        «       ¬«      |¬«       Œ7|dz  dk(  r|j                  t        «       |¬«       Œ[|j                  t        «       |¬«       Œw 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 ‚|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 ‚y)z2Test schema with many key overrides (stress test).ró   Úfield_r   Úsource_r‰   rr   rX   r&   é4   Úfield_0NTÚfield_1FÚfield_2rj   Úsource_0Úfield_49Úfield_48)r   Úrangert   r   r   r…   r   r   rk   rj   rb   rc   r^   r\   r_   rd   re   rÕ   rØ   r2   rl   )r   rn   ÚiÚkey_namer2  r3  r4  rÚ   rÝ   Údes_field_0Údes_field_49Údes_field_48s               r    Útest_many_keys_stressz#TestNewSchema.test_many_keys_stress  s¿  € ä“ˆô �r“ò 	SˆAØ ˜s�|ˆHØ�AŠvà×#Ñ#Ü2Ø%,¨Q¨C =Ü+FÓ+Hôð !ð $õ ð �Q‘˜!’à×#Ñ#Ô+DÓ+FÈHÐ#ÕUð ×#Ñ#Ô+AÓ+CÈÐ#ÕRð!	Sô& �6—;‘;Ó 2Ò%Ð%Ð%ð ˜FŸK™KÑ'Ð'Ð'Ø—+‘+˜iÑ(ˆØ×$Ñ$Ð0Ð0Ð0Ø×$Ñ$×8Ñ8ÐDÐDÐDØ×$Ñ$×8Ñ8×@Ñ@ÀDÑHÐHÐHà˜FŸK™KÑ'Ð'Ð'Ø—+‘+˜iÑ(ˆØ�~‰~Ð)Ð)Ð)Ø�~‰~×3Ñ3Ð?Ð?Ð?Ø�~‰~×3Ñ3×;Ñ;¸uÑDÐDÐDà˜FŸK™KÑ'Ð'Ð'Ø—+‘+˜iÑ(ˆØ× Ñ Ð,Ð,Ð,Ø× Ñ ×3Ñ3Ð?Ð?Ð?Ø× Ñ ×3Ñ3×;Ñ;¸uÑDÐDÐDð ×,Ñ,Ó.ˆ	Ü�9˜VÑ$Ó%¨Ò+Ð+Ð+ô ×3Ñ3°IÓ>ˆÜ�<×$Ñ$Ó%¨Ò+Ð+Ð+ð ˜L×-Ñ-Ñ-Ð-Ð-Ø"×'Ñ'¨	Ñ2ˆØ×(Ñ(Ð4Ð4Ð4Ø×(Ñ(×<Ñ<ÐHÐHÐHØ×(Ñ(×<Ñ<×DÑDÈÑLÐLÐLà×%Ñ%×9Ñ9×@Ñ@×KÑKØòð	
ðð ˜\×.Ñ.Ñ.Ð.Ð.Ø#×(Ñ(¨Ñ4ˆØ×"Ñ"Ð.Ð.Ð.Ø×"Ñ"×8Ñ8ÐDÐDÐDØ×"Ñ"×8Ñ8×@Ñ@ÀEÑIÐIÐIà˜\×.Ñ.Ñ.Ð.Ð.Ø#×(Ñ(¨Ñ4ˆØ×%Ñ%Ð1Ð1Ð1Ø×%Ñ%×8Ñ8ÐDÐDÐDØ×%Ñ%×8Ñ8×@Ñ@ÀEÑIÐIÑIr"   c                 óN  — t        «       }|j                  t        dt        «       ¬«      d¬«      j	                  t        «       d¬«      j	                  t        «       d¬«      j	                  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 ‚y)z@Test chaining multiple create_index and delete_index operations.r"  r‰   Úfield1rr   Úfield2Úfield3Úfield4NTF)r   rt   r   r   r…   r   r   rj   rb   rc   r^   r\   r_   rd   re   )r   rn   rv   r@  rA  rB  rC  s          r    Útest_chained_operationsz%TestNewSchema.test_chained_operationsX  s  € ä“ˆð ×ÑÜ.Ø%Ô:UÓ:Wôð ð	  ó ÷ ‰\Ô!:Ó!<À(ˆ\ÓKß‰\Ô!:Ó!<À(ˆ\ÓKß‰\Ô!7Ó!9¸xˆ\ÓHð 	ð ˜ÑÐÐð ˜6Ÿ;™;Ñ&Ð&Ð&Ø—‘˜XÑ&ˆØ×#Ñ#Ð/Ð/Ð/Ø×#Ñ#×7Ñ7ÐCÐCÐCØ×#Ñ#×7Ñ7×?Ñ?À4ÑGÐGÐGà˜6Ÿ;™;Ñ&Ð&Ð&Ø—‘˜XÑ&ˆØ�}‰}Ð(Ð(Ð(Ø�}‰}×2Ñ2Ð>Ð>Ð>Ø�}‰}×2Ñ2×:Ñ:¸eÑCÐCÐCà˜6Ÿ;™;Ñ&Ð&Ð&Ø—‘˜XÑ&ˆØ�}‰}Ð(Ð(Ð(Ø�}‰}×2Ñ2Ð>Ð>Ð>Ø�}‰}×2Ñ2×:Ñ:¸eÑCÐCÐCà˜6Ÿ;™;Ñ&Ð&Ð&Ø—‘˜XÑ&ˆØ×ÑÐ+Ð+Ð+Ø×Ñ×2Ñ2Ð>Ð>Ð>Ø×Ñ×2Ñ2×:Ñ:¸eÑ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                  j                  du sJ ‚t        «       }|j                  |¬«       |j                  j
                  j                  €J ‚|j                  j
                  j                  j                  du sJ ‚|j                  t        «       d¬«       d|j                  v sJ ‚|j                  d   j                  j                  j                  du sJ ‚|j                  t        «       d¬«       d|j                  v sJ ‚|j                  d   j
                  j                  j                  du sJ ‚|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 ‚y)z8Test enabling/disabling float and bool inverted indexes.NTr5   Fr  rr   Ú	is_activer[   rÓ   rg   r^   rÔ   ri   rj   )r   r[   rf   rg   r^   rh   ri   r	   r…   r
   rt   rj   rÕ   rØ   )r   rn   r  Úbool_configrÚ   rÝ   s         r    Ú$test_float_and_bool_inverted_indexesz2TestNewSchema.test_float_and_bool_inverted_indexes…  s�  € ä“ˆð �‰×*Ñ*Ð6Ð6Ð6Ø�‰×*Ñ*×?Ñ?ÐKÐKÐKØ�‰×*Ñ*×?Ñ?×GÑGÈ4ÑOÐOÐOØ�‰×&Ñ&Ð2Ð2Ð2Ø�‰×&Ñ&×:Ñ:ÐFÐFÐFØ�‰×&Ñ&×:Ñ:×BÑBÀdÑJÐJÐJô 0Ó1ˆØ×Ñ <ÐÔ0Ø�‰×*Ñ*×?Ñ?ÐKÐKÐKØ�‰×*Ñ*×?Ñ?×GÑGÈ5ÑPÐPÐPô .Ó/ˆØ×Ñ ;ÐÔ/Ø�‰×&Ñ&×:Ñ:ÐFÐFÐFØ�‰×&Ñ&×:Ñ:×BÑBÀeÑKÐKÐKð 	×ÑÔ#;Ó#=À7ÐÔKØ˜&Ÿ+™+Ñ%Ð%Ð%Ø�{‰{˜7Ñ#×/Ñ/×DÑD×LÑLÐPTÑTÐTÐTð 	×ÑÔ#:Ó#<À+ÐÔNØ˜fŸk™kÑ)Ð)Ð)Ø�{‰{˜;Ñ'×/Ñ/×CÑC×KÑKÈuÑTÐTÐTð ×,Ñ,Ó.ˆ	à�jÑ! 'Ñ*Ð+AÑBÀ9ÑMÐQVÑVð	
ØVà˜Ñ$ VÑ,Ð-BÑCÀIÑNÐRWÑWÐWÐWà�fÑ˜gÑ& wÑ/Ð0FÑGÈ	ÑRØñð	
ðð �fÑ˜kÑ*¨6Ñ2Ð3HÑIÈ)ÑTØñð	
ðô
 ×3Ñ3°IÓ>ˆØ×$Ñ$×0Ñ0×EÑE×MÑMÐQVÑVÐVÐVØ×$Ñ$×,Ñ,×@Ñ@×HÑHÈEÑQÐQÐQà×Ñ˜gÑ&×2Ñ2×GÑG×OÑOÐSWÑWð	
ØWð ×Ñ˜kÑ*×2Ñ2×FÑF×NÑNÐRWÑWð	
ÙWr"   c                 óF  — ddl m} t        |d<   	 t        «       }t        d¬«      }t	        |¬«      }|j                  |¬«       |j                  «       }|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= yy# d|v r|d= w w xY w)zVTest that space is correctly inferred from embedding function when not explicitly set.r   rå   rJ   Úspace_inference_testr¢   ©r}   r5   r[   r`   ra   r2   r’   rO   rj   rZ   N©rì   ræ   r>   r   r   rt   rÕ   rØ   r[   r`   ra   r2   r’   rj   ©	r   ræ   rn   rí   rœ   rÚ   r­   r®   rÝ   s	            r    Ú,test_space_inference_from_embedding_functionz:TestNewSchema.test_space_inference_from_embedding_functionÁ  sç  € õ 	Qä6KÐ!Ð"2Ñ3ð+	@Ü“XˆFô .Ð9OÔPˆIÜ-Ø#,ôˆMð ×Ñ }ÐÔ5ð ×0Ñ0Ó2ˆIð (¨
Ñ3°LÑAÀ.ÑQˆOØ" 8Ñ,¨WÑ5¸ÒAÐAÐAð  )¨Ñ0°Ñ>¸|ÑLØñ Ðð $ HÑ-¨gÑ6¸(ÒBÐBÐBô "×7Ñ7¸	ÓBˆLØ×(Ñ(×3Ñ3Ð?Ð?Ð?Ø×(Ñ(×3Ñ3×@Ñ@ÐLÐLÐLà×%Ñ%×0Ñ0×=Ñ=×DÑD×JÑJÈhÒVðØVð  ×$Ñ$ \Ñ2×=Ñ=ÐIÐIÐIØ×$Ñ$ \Ñ2×=Ñ=×JÑJÐVÐVÐVà×!Ñ! ,Ñ/×:Ñ:×GÑG×NÑN×TÑTØòðñð  Ð#<Ñ<Ø-Ð.>Ñ?ð =øÐÐ#<Ñ<Ø-Ð.>Ñ?ð =ús   ‘E;F Æ
F c                 óH  — ddl m} t        |d<   	 t        «       }t        d¬«      }t	        |d¬«      }|j                  |¬«       |j                  «       }|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= yy# d|v r|d= w w xY w)zTTest that explicit space parameter overrides the embedding function's default space.r   rå   rJ   Úoverride_testr¢   rR   ©r}   r’   r5   r[   r`   ra   r2   r’   rj   rZ   NrL  rM  s	            r    Ú8test_explicit_space_overrides_embedding_function_defaultzFTestNewSchema.test_explicit_space_overrides_embedding_function_defaultõ  sê  € õ 	Qä6KÐ!Ð"2Ñ3ð-	@Ü“XˆFô
 .¸ÔIˆIÜ-Ø#,ØôˆMð ×Ñ }ÐÔ5ð ×0Ñ0Ó2ˆIð (¨
Ñ3°LÑAÀ.ÑQˆOà Ñ)¨'Ñ2°dÒ:ðØ:ð  )¨Ñ0°Ñ>¸|ÑLØñ Ðð ! Ñ*¨7Ñ3°tÒ;ðØ;ô "×7Ñ7¸	ÓBˆLØ×(Ñ(×3Ñ3Ð?Ð?Ð?Ø×(Ñ(×3Ñ3×@Ñ@ÐLÐLÐLØ×(Ñ(×3Ñ3×@Ñ@×GÑG×MÑMÐQUÒUÐUÐUà×$Ñ$ \Ñ2×=Ñ=ÐIÐIÐIØ×$Ñ$ \Ñ2×=Ñ=×JÑJÐVÐVÐVà×!Ñ! ,Ñ/×:Ñ:×GÑG×NÑN×TÑTØòðñð  Ð#<Ñ<Ø-Ð.>Ñ?ð =øÐÐ#<Ñ<Ø-Ð.>Ñ?ð =ús   ‘E<F Æ
F!c                 óš  — t        «       }t        dd¬«      }|j                  |¬«       |j                  «       }|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 ‚y)zITest space handling when no embedding function is provided (legacy mode).NrS   rQ  r5   r[   r`   ra   r2   r’   r}   rÎ   rà   rj   rZ   )r   r   rt   rÕ   rØ   r[   r`   ra   r2   r’   r}   )r   rn   rœ   rÚ   r­   r®   rÝ   s          r    Ú/test_space_inference_with_no_embedding_functionz=TestNewSchema.test_space_inference_with_no_embedding_function+	  s�  € ä“ˆô *Ø#Øô
ˆð 	×Ñ =ÐÔ1ð ×,Ñ,Ó.ˆ	ð $ JÑ/°Ñ=¸nÑMˆØ˜xÑ(¨Ñ1°TÒ9Ð9Ð9Ø˜xÑ(Ð)=Ñ>¸vÑFÈ(ÒRÐRÐRà$ VÑ,¨\Ñ:¸<ÑHÈÑXÐØ Ñ)¨'Ñ2°dÒ:Ð:Ð:Ø Ñ)Ð*>Ñ?ÀÑGÈ8ÒSÐSÐSô ×3Ñ3°IÓ>ˆØ×$Ñ$×/Ñ/Ð;Ð;Ð;Ø×$Ñ$×/Ñ/×<Ñ<ÐHÐHÐHØ×$Ñ$×/Ñ/×<Ñ<×CÑC×IÑIÈTÒQÐQÐQà×!Ñ!×,Ñ,×9Ñ9×@Ñ@×SÑSØðð	
ñr"   c                 óè  — ddl m} t        |d<   	 t        «       }t        d¬«      }t	        |¬«      }|j                  |¬«       |j                  «       }|d   d	   d
   d   d   dk(  sJ ‚t        j                  |«      }|j                  «       }|d   d	   d
   d   d   dk(  sJ ‚t        j                  |«      }|j                  «       }	|	d   d	   d
   d   d   dk(  sJ ‚||fD ]u  }
|
j                  j                  €J ‚|
j                  j                  j                  €J ‚|
j                  j                  j                  j                  j                  dk(  rŒuJ ‚ 	 d|v r|d= yy# d|v r|d= w w xY w)zQTest that inferred space remains stable across multiple serialization roundtrips.r   rå   rJ   Úroundtrip_space_testr¢   rK  r5   r[   r`   ra   r2   r’   rO   N)rì   ræ   r>   r   r   rt   rÕ   rØ   r[   r`   ra   r2   r’   )r   ræ   rÙ   rí   rœ   r%  r&  r'  r(  r)  rn   s              r    Ú(test_space_inference_multiple_roundtripsz6TestNewSchema.test_space_inference_multiple_roundtripsL	  sÐ  € õ 	Qä6KÐ!Ð"2Ñ3ð)	@ä“xˆHÜ-Ð9OÔPˆIÜ-Ø#,ôˆMð ×!Ñ!¨Ð!Ô7ð ×.Ñ.Ó0ˆEà�jÑ! ,Ñ/°Ñ?ÀÑIÈ'ÑRØòððô ×2Ñ2°5Ó9ˆGð ×-Ñ-Ó/ˆEà�jÑ! ,Ñ/°Ñ?ÀÑIÈ'ÑRØòððô ×2Ñ2°5Ó9ˆGð ×-Ñ-Ó/ˆEà�jÑ! ,Ñ/°Ñ?ÀÑIÈ'ÑRØòððð
 # GÐ,ò X�Ø—‘×1Ñ1Ð=Ð=Ð=Ø—‘×1Ñ1×>Ñ>ÐJÐJÐJØ—‘×1Ñ1×>Ñ>×EÑE×KÑKÈxÓWÐWÐWñXð  Ð#<Ñ<Ø-Ð.>Ñ?ð =øÐÐ#<Ñ<Ø-Ð.>Ñ?ð =ús   ‘EE' ÅE' Å'
E1c                 ó  — t        «       }t        dt        «       ¬«      }|j                  |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        «       }|j                  |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 ‚y)zZTest that each key override has its own independent config (no inheritance from defaults).Údefault_sourcer‰   r@  rr   NTrA  )r   r   r   rt   rj   rb   rc   r^   r2   rl   r   r\   r_   )r   rn   r�   r@  rŽ   rA  s         r    Ú"test_keys_have_independent_configsz0TestNewSchema.test_keys_have_independent_configs~	  s~  € ä“ˆô 0Ø'Ü:Ó<ô
ˆð 	×Ñ =°hÐÔ?ð ˜6Ÿ;™;Ñ&Ð&Ð&Ø—‘˜XÑ&ˆØ×#Ñ#Ð/Ð/Ð/Ø×#Ñ#×7Ñ7ÐCÐCÐCØ×#Ñ#×7Ñ7×?Ñ?À4ÑGÐGÐGà× Ñ ×4Ñ4×;Ñ;×FÑFØò ð	
ð ô
 2Ó3ˆØ×Ñ =°hÐÔ?ð ˜6Ÿ;™;Ñ&Ð&Ð&Ø—‘˜XÑ&ˆØ�}‰}Ð(Ð(Ð(Ø�}‰}×2Ñ2Ð>Ð>Ð>Ø�}‰}×2Ñ2×:Ñ:¸dÑBÐBÐBð × Ñ ×4Ñ4×;Ñ;×FÑFØò ð	
ñ r"   c                 ó  — ddl m} t        |d<   	 t        «       }t        d¬«      }t	        dd¬«      }t        |d	|¬
«      }|j                  |¬«       |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                  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= yy# d|v r|d= w w xY w)zPTest that changes to global defaults don't affect already-created key overrides.r   rå   rJ   Úinitial_modelr¢   r¥   é   rý   rO   rë   r5   rZ   NÚupdated_modelr£   r¤   rR   )rì   ræ   r>   r   r   r   rt   rj   r`   ra   r2   rª   r§   r¨   r[   r’   )r   ræ   rn   Ú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ä6KÐ!Ð"2Ñ3ð8	@Ü“XˆFô (°?ÔCˆCÜ#°CÀrÔJˆEÜ.Ø#&¨h¸UôˆNð ×Ñ ~ÐÔ6ð &,§[¡[Øñ&ç‰jŸ™§f¡f¯T©Tð #ð *Ð5Ð5Ð5Ø)×9Ñ9¸SÒ@Ð@Ð@Ø)×7Ñ7¸2Ò=Ð=Ð=ô (°?ÔCˆCÜ#°CÀrÔJˆEÜ.Ø#&¨d¸ôˆNð ×Ñ ~ÐÔ6ð —?‘?×-Ñ-Ð9Ð9Ð9Ø—?‘?×-Ñ-×:Ñ:ÐFÐFÐFØ—?‘?×-Ñ-×:Ñ:×AÑA×GÑGÈ4ÒOÐOÐOØ—?‘?×-Ñ-×:Ñ:×AÑA×FÑFÐRÐRÐRà—‘×*Ñ*×7Ñ7×>Ñ>×CÑC×SÑSØòððð —‘×*Ñ*×7Ñ7×>Ñ>×CÑC×QÑQÐUWÒWðØWð —;‘;˜|Ñ,×7Ñ7ÐCÐCÐCØ—;‘;˜|Ñ,×7Ñ7×DÑDÐPÐPÐPØ%+§[¡[Øñ&ç‰jŸ™§f¡f¯T©Tð #ð *Ð5Ð5Ð5Ø)×9Ñ9¸SÒ@Ð@Ð@Ø)×7Ñ7¸2Ò=Ð=Ð=à—‘˜LÑ)×4Ñ4×AÑA×HÑH×NÑNÐRVÒVðÙVð
  Ð#<Ñ<Ø-Ð.>Ñ?ð =øÐÐ#<Ñ<Ø-Ð.>Ñ?ð =ús   ‘K!K< Ë<
Lc                 óì  — t        «       }|j                  t        dt        «       ¬«      d¬«       |j                  t	        «       d¬«       |j                  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 ‚|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 ‚|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 ‚y	)
zBTest that modifying one key's overrides doesn't affect other keys.Úsource_ar‰   Úkey_arr   Úkey_bÚkey_cTFN)r   rt   r   r   r   rj   rb   rc   r2   rl   r\   r_   r^   r…   rÕ   rØ   )r   rn   ri  rk  rÚ   rÝ   s         r    Ú+test_key_specific_overrides_are_independentz9TestNewSchema.test_key_specific_overrides_are_independentæ	  s¸  € ä“ˆð 	×ÑÜ*Ø%Ô:UÓ:Wôð ð	 	ô 	
ð 	×ÑÔ#<Ó#>ÀGÐÔLØ×ÑÔ#<Ó#>ÀGÐÔLð �K‰K˜Ñ ×.Ñ.×BÑB×IÑI×TÑTØòð	
ðð �{‰{˜7Ñ#×*Ñ*×@Ñ@×HÑHÈDÑPÐPÐPØ�{‰{˜7Ñ#×*Ñ*×@Ñ@×HÑHÈDÑPÐPÐPð 	×ÑÔ#<Ó#>ÀGÐÔLð �{‰{˜7Ñ#×*Ñ*×@Ñ@×HÑHÈEÑQÐQÐQð —‘˜GÑ$ˆØ×"Ñ"Ð.Ð.Ð.Ø×"Ñ"×6Ñ6ÐBÐBÐBØ×"Ñ"×6Ñ6×>Ñ>À$ÑFÐFÐFØ×"Ñ"×6Ñ6×=Ñ=×HÑHÈJÒVÐVÐVà—‘˜GÑ$ˆØ�|‰|Ð'Ð'Ð'Ø�|‰|×1Ñ1Ð=Ð=Ð=Ø�|‰|×1Ñ1×9Ñ9¸TÑAÐAÐAð ×,Ñ,Ó.ˆ	Ü×3Ñ3°IÓ>ˆð ×ÑØñç‰m×/Ñ/·±·z±zØòð	
ðð
 × Ñ  Ñ)×0Ñ0×FÑF×NÑNÐRWÑWÐWÐWØ× Ñ  Ñ)×0Ñ0×FÑF×NÑNÐRVÑVÐVÑVr"   c                 ó  — t        «       }|j                  j                  €J ‚|j                  j                  j                  €J ‚|j                  j                  j                  j                  du sJ ‚|j                  t        «       ¬«       |j                  j                  j                  j                  du sJ ‚|j                  t        «       d¬«       |j                  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 ‚|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 ‚y)zDTest disabling an index globally, then enabling it on specific keys.NTr5   FÚimportant_fieldrr   Úsearchable_fieldrj   rY   rZ   Úother_field)
r   r[   r\   r_   r^   r…   r   rt   rj   rÕ   )r   rn   Ú	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ÑCÀtÑKÐKÐKð 	×ÑÔ#<Ó#>ÐÔ?Ø�‰×%Ñ%×;Ñ;×CÑCÀuÑLÐLÐLð 	×ÑÔ#<Ó#>ÐDUÐÔVØ×ÑÔ#<Ó#>ÐDVÐÔWð �‰×%Ñ%×;Ñ;×CÑCÀuÑLÐLÐLð —K‘KÐ 1Ñ2ˆ	Ø×ÑÐ+Ð+Ð+Ø×Ñ×5Ñ5ÐAÐAÐAØ×Ñ×5Ñ5×=Ñ=ÀÑEÐEÐEà—[‘[Ð!3Ñ4ˆ
Ø× Ñ Ð,Ð,Ð,Ø× Ñ ×6Ñ6ÐBÐBÐBØ× Ñ ×6Ñ6×>Ñ>À$ÑFÐFÐFð ×,Ñ,Ó.ˆ	ð ! I¨fÑ$5Ñ5Ð5Ð5Ø! Y¨vÑ%6Ñ6Ð6Ð6Ø˜i¨Ñ/Ñ/Ð/Ð/Ø˜y¨Ñ0Ñ0Ð0Ð0ð  I¨fÑ$5Ñ5Ð5Ñ5r"   c                 ó.  — t        «       }|j                  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 ‚|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 ‚y)z\Test that when you override one aspect of a value type, other indexes still follow defaults.Ú	my_sourcer‰   Úmulti_index_fieldrr   NTrj   rb   r\   rÒ   rÓ   rÔ   r`   )r   rt   r   r   rj   rb   rc   r^   r\   rd   rf   rh   r`   rÕ   rØ   )r   rn   ÚfieldrÚ   Ú
field_jsonrÝ   Ú	des_fields          r    Ú)test_partial_override_fills_from_defaultsz7TestNewSchema.test_partial_override_fills_from_defaultsH
  sò  € ä“ˆð 	×ÑÜ*Ø&Ô;VÓ;Xôð $ð	 	ô 	
ð —‘Ð/Ñ0ˆð ×"Ñ"Ð.Ð.Ð.Ø×"Ñ"×6Ñ6ÐBÐBÐBØ×"Ñ"×6Ñ6×>Ñ>À$ÑFÐFÐFð �|‰|Ð#Ð#Ð#Ø�‰Ð&Ð&Ð&Ø× Ñ Ð(Ð(Ð(Ø�}‰}Ð$Ð$Ð$Ø×ÑÐ'Ð'Ð'ð ×,Ñ,Ó.ˆ	Ø˜vÑ&Ð':Ñ;ˆ
ð  *Ñ,Ð,Ð,Ø˜zÑ)Ð)Ð)Ø˜JÑ&Ð&Ð&Ø˜jÑ(Ð(Ð(Ø˜ZÑ'Ð'Ð'Ø :Ñ-Ð-Ð-ô ×3Ñ3°IÓ>ˆØ ×%Ñ%Ð&9Ñ:ˆ	ð ×&Ñ&Ð2Ð2Ð2Ø×&Ñ&×:Ñ:ÐFÐFÐFØ×&Ñ&×:Ñ:×BÑBÀdÑJÐJÐJð ×ÑÐ'Ð'Ð'Ø×"Ñ"Ð*Ð*Ñ*r"   c                 ó  — t        j                  d«      }|j                  t        j                  k(  sJ ‚|j
                  dk(  sJ ‚|j                  «       du sJ ‚t        j                  d«      }|j                  «       du sJ ‚y)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‰xØ`ó
ˆð �}‰}¤× 0Ñ 0Ò0Ð0Ð0à�M‰MØcòdð	
ðdð
 ×$Ñ$Ó&¨$Ñ.Ð.Ð.ô —x‘xÐ 0Ó1ˆØ×,Ñ,Ó.°%Ñ7Ð7Ñ7r"   c                 ó  — t        j                  d«      }|j                  «       }|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 ‚y)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‰xÐHÓIˆð —L‘L“Nˆ	Ø˜UÐ$TÐUÒUÐUÐUØ˜	Ñ!Ð!Ð!Ø˜ÑÐ#SÒSÐSÐSô —>‘> )Ó,ˆØ× Ñ ¤L×$4Ñ$4Ò4Ð4Ð4Ø× Ñ  D§M¡MÒ1Ð1Ñ1r"   c                 ó  — t        «       }|j                  �J ‚t        j                  d«      }|j	                  |«      }||u sJ ‚|j                  €J ‚|j                  j
                  t        j                  k(  sJ ‚|j                  j                  dk(  sJ ‚|j	                  d«       |j                  �J ‚t        j                  d«      }t        «       j	                  |«      }|j                  €J ‚|j                  j                  dk(  sJ ‚y)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   rn   r�  rv   Úcmek2r(  s         r    Útest_cmek_in_schemaz!TestNewSchema.test_cmek_in_schemaž
  s  € ä“ˆð �{‰{Ð"Ð"Ð"ô �x‰xÐQÓRˆØ—‘ Ó&ˆð ˜ÑÐÐð �{‰{Ð&Ð&Ð&Ø�{‰{×#Ñ#¤|×'7Ñ'7Ò7Ð7Ð7à�K‰K× Ñ ØHòIð	
ðIð
 	�‰˜ÔØ�{‰{Ð"Ð"Ð"ô —‘ÐIÓJˆÜ“(×#Ñ# EÓ*ˆØ�|‰|Ð'Ð'Ð'Ø�|‰|×$Ñ$Ð(XÒXÐXÑXr"   c                 ó²  — t        j                  d«      }t        «       j                  |«      }|j	                  «       }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 ‚y)z$Test Schema serialization with CMEK.r…  r�  r|  N)r   r|  r   rŒ  rÕ   rØ   r�  r}  r   r~  r  )r   r�  rn   rÚ   rÝ   s        r    Útest_cmek_schema_serializationz,TestNewSchema.test_cmek_schema_serialization¾
  s÷   € ä�x‰xÐHÓIˆÜ“×"Ñ" 4Ó(ˆð ×,Ñ,Ó.ˆ	ð ˜Ñ"Ð"Ð"Ø˜Ñ ØÐCð%
ò 
ð 	
ð 
ð ˜	 &Ñ)Ñ)Ð)Ð)à�fÑ˜eÑ$Ð(XÒXð	
ØXô ×3Ñ3°IÓ>ˆØ× Ñ Ð,Ð,Ð,Ø× Ñ ×)Ñ)¬\×-=Ñ-=Ò=Ð=Ð=Ø× Ñ ×)Ñ)¨T¯]©]Ò:Ð:Ñ:r"   c                 óŠ   — t        «       }|j                  «       }d|vsJ ‚t        j                  |«      }|j                  �J ‚y)z@Test Schema serialization without CMEK (backward compatibility).r�  N)r   rÕ   rØ   r�  )r   rn   rÚ   rÝ   s       r    Ú+test_cmek_schema_without_cmek_serializationz9TestNewSchema.test_cmek_schema_without_cmek_serializationÖ
  sM   € ä“ˆð ×,Ñ,Ó.ˆ	ð ˜YÑ&Ð&Ð&ô ×3Ñ3°IÓ>ˆØ× Ñ Ð(Ð(Ñ(r"   c                 ó,  — t        j                  t        d¬«      5  t        j                  i i i dœ«       ddd«       t        j                  t        d¬«      5  t        j                  i i ddidœ«       ddd«       y# 1 sw Y   ŒIxY w# 1 sw Y   yxY w)zCTest that invalid CMEK data raises a warning and sets cmek to None.z,Unsupported or missing CMEK provider in datar”   )r[   rj   r�  NÚinvalid_providerzsome-resource)r™   rš   r›   r   rØ   r0   s    r    Ú!test_cmek_invalid_deserializationz/TestNewSchema.test_cmek_invalid_deserializationå
  s•   € ä�]‰]ÜÐLô
ñ 	Sô ×(Ñ(°bÀ"ÈbÑ)QÔR÷	Sô
 �]‰]ÜÐLô
ñ 		ô ×(Ñ(à "ØØ/°ÐAñô÷		ð 		÷	Sð 	Sú÷
		ð 		ús   œA>ÁB
Á>BÂ
B©r$   N).r7   r8   r9   r:   ro   rw   r�   r†   r�   rŸ   r¯   rµ   r·   r»   rÁ   rÄ   rÇ   rÌ   rÞ   rã   rð   rù   r  r  r  r  r  r-  r>  rD  rH  rN  rR  rT  rW  rZ  rf  rl  rs  rz  rƒ  rŠ  rŽ  r�  r’  r•  r.   r"   r    rV   rV   L   s  „ Ù.óG
óR+
óZ1
óf(
óTc
óJ5Ión1
óf&UóPHó<.ó #NóJ
ó4%QóN)@óVj
óXG
óRr@óhI@óVW=ór
2Lóh&LóP?GóB*1óX\@ó|JJóX+DóZ:
óx2@óh4@ól
óB0@ód%
óN?@óB4Wól*6óX2+óh8ó&2óYó@;ó0)ôr"   rV   c                  ó°   — t        «       } t        «       }t        j                  t        d¬«      5  | j                  |¬«       ddd«       y# 1 sw Y   yxY w)zITest that sparse vector index cannot be created globally (without a key).z5Sparse vector index must be created on a specific keyr”   r5   N)r   r   r™   rš   r›   rt   ©rn   r�   s     r    Ú-test_sparse_vector_cannot_be_created_globallyr™  ø
  sM   € ä‹X€FÜ+Ó-€Mô 
�‰ÜÐQô
ñ 2ð 	×Ñ =ÐÔ1÷2÷ 2ñ 2ús   °AÁAc                  óº  — t        «       } t        «       }| j                  |d¬«       | j                  d   j                  €J ‚| j                  d   j                  j
                  €J ‚| j                  d   j                  j
                  j                  du sJ ‚t        j                  t        d¬«      5  | j                  |d¬«       ddd«       y# 1 sw Y   yxY w)zITest that sparse vector index cannot be deleted (temporarily disallowed).r¹   rr   NTz7Deleting sparse vector index is not currently supportedr”   )r   r   rt   rj   rb   rc   r^   r™   rš   r›   r…   r˜  s     r    Ú$test_sparse_vector_cannot_be_deletedr›    sÍ   € ä‹X€FÜ+Ó-€Mð ×Ñ˜}°(ÐÔ;Ø�;‰;�xÑ ×.Ñ.Ð:Ð:Ð:Ø�;‰;�xÑ ×.Ñ.×BÑBÐNÐNÐNØ�;‰;�xÑ ×.Ñ.×BÑB×JÑJÈdÑRÐRÐRô 
�‰ÜÐSô
ñ @ð 	×Ñ =°hÐÔ?÷@÷ @ñ @ús   Â4CÃCc                  óâ  — t        «       } t        «       }| j                  |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        «       }| 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        «       }|j                  |d¬«       t        «       }|j                  |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 ‚y)zLTest that create_index accepts both str and Key types for the key parameter.Útest_field_strrr   NTÚtest_field_keyÚ
same_field)r   r   rt   rj   r\   r_   r^   r   r   rd   re   ©rn   rŽ   rÊ   r(  r*  s        r    Ú"test_create_index_accepts_key_typer¡    sF  € ä‹X€Fô .Ó/€MØ
×Ñ˜}Ð2BÐÔCð ˜vŸ{™{Ñ*Ð*Ð*Ø�;‰;Ð'Ñ(×/Ñ/Ð;Ð;Ð;Ø�;‰;Ð'Ñ(×/Ñ/×EÑEÐQÐQÐQØ�;‰;Ð'Ñ(×/Ñ/×EÑE×MÑMÐQUÑUÐUÐUô (Ó)€JØ
×Ñ˜z¬sÐ3CÓ/DÐÔEð ˜vŸ{™{Ñ*Ð*Ð*Ø�;‰;Ð'Ñ(×2Ñ2Ð>Ð>Ð>Ø�;‰;Ð'Ñ(×2Ñ2×EÑEÐQÐQÐQØ�;‰;Ð'Ñ(×2Ñ2×EÑE×MÑMÐQUÑUÐUÐUô ‹h€GØ×Ñ °<ÐÔ@ä‹h€GØ×Ñ ´3°|Ó3DÐÔEð �<‰<˜Ñ%×,Ñ,Ð8Ð8Ð8Ø�<‰<˜Ñ%×,Ñ,×BÑBÐNÐNÐNØ�<‰<˜Ñ%×,Ñ,Ð8Ð8Ð8Ø�<‰<˜Ñ%×,Ñ,×BÑBÐNÐNÐNà�‰�\Ñ"×)Ñ)×?Ñ?×GÑGØ�<‰<˜Ñ%×,Ñ,×BÑB×JÑJò	Kðñ	Kr"   c                  óâ  — t        «       } t        «       }t        «       }| j                  |d¬«       d| j                  v sJ ‚| j                  d   j
                  €J ‚| j                  d   j
                  j                  €J ‚| j                  d   j
                  j                  j                  du sJ ‚| 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        «       }|j                  |d¬«       t        «       }|j                  |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 ‚y)zLTest that delete_index accepts both str and Key types for the key parameter.r�  rr   NFrž  rŸ  )r   r   r   r…   rj   r\   r_   r^   r   rd   re   r   s        r    Ú"test_delete_index_accepts_key_typer£  @  sH  € ä‹X€Fô .Ó/€MÜ'Ó)€Jð ×Ñ˜}Ð2BÐÔCð ˜vŸ{™{Ñ*Ð*Ð*Ø�;‰;Ð'Ñ(×/Ñ/Ð;Ð;Ð;Ø�;‰;Ð'Ñ(×/Ñ/×EÑEÐQÐQÐQØ�;‰;Ð'Ñ(×/Ñ/×EÑE×MÑMÐQVÑVÐVÐVð ×Ñ˜z¬sÐ3CÓ/DÐÔEð ˜vŸ{™{Ñ*Ð*Ð*Ø�;‰;Ð'Ñ(×2Ñ2Ð>Ð>Ð>Ø�;‰;Ð'Ñ(×2Ñ2×EÑEÐQÐQÐQØ�;‰;Ð'Ñ(×2Ñ2×EÑE×MÑMÐQVÑVÐVÐVô ‹h€GØ×Ñ °<ÐÔ@ä‹h€GØ×Ñ ´3°|Ó3DÐÔEð �<‰<˜Ñ%×,Ñ,Ð8Ð8Ð8Ø�<‰<˜Ñ%×,Ñ,×BÑBÐNÐNÐNØ�<‰<˜Ñ%×,Ñ,Ð8Ð8Ð8Ø�<‰<˜Ñ%×,Ñ,×BÑBÐNÐNÐNà�‰�\Ñ"×)Ñ)×?Ñ?×GÑGØ�<‰<˜Ñ%×,Ñ,×BÑB×JÑJò	Kðñ	Kr"   c                  ó  — t        «       } t        «       }t        j                  t        d¬«      5  | j                  |t        j                  ¬«       ddd«       t        j                  t        d¬«      5  | j                  |t        j                  ¬«       ddd«       t        j                  t        d¬«      5  | j                  |d¬«       ddd«       t        j                  t        d¬«      5  | j                  |d¬«       ddd«       t        j                  t        d¬«      5  | j                  |t        d	«      ¬«       ddd«       y# 1 sw Y   ŒýxY w# 1 sw Y   ŒÄxY w# 1 sw Y   Œ™xY w# 1 sw Y   ŒnxY w# 1 sw Y   yxY w)
zPTest that create_index rejects special keys like Key.DOCUMENT and Key.EMBEDDING.r—   r”   rr   Nr˜   rY   úkey cannot begin with '#'ú#custom_keyú#custom)	r   r   r™   rš   r›   rt   r   ÚDOCUMENTÚ	EMBEDDING©rn   rŽ   s     r    Ú&test_create_index_rejects_special_keysr«  l  sc  € ä‹X€FÜ-Ó/€Mô 
�‰ÜÐJô
ñ Dð 	×Ñ =´c·l±lÐÔC÷Dô 
�‰ÜÐKô
ñ Eð 	×Ñ =´c·m±mÐÔD÷Eô 
�‰ÜÐJô
ñ Cð 	×Ñ =°kÐÔB÷Cô 
�‰”zÐ)DÔ	Eñ EØ×Ñ =°mÐÔD÷Eô 
�‰”zÐ)DÔ	Eñ FØ×Ñ =´c¸)³nÐÔE÷Fð F÷-Dð Dú÷Eð Eú÷Cð Cú÷Eð Eú÷Fð Fúó;   °"EÁ5"EÂ:E&Ã1E2Ä(E>ÅEÅE#Å&E/Å2E;Å>Fc                  ó  — t        «       } t        «       }t        j                  t        d¬«      5  | j                  |t        j                  ¬«       ddd«       t        j                  t        d¬«      5  | j                  |t        j                  ¬«       ddd«       t        j                  t        d¬«      5  | j                  |d¬«       ddd«       t        j                  t        d¬«      5  | j                  |d¬«       ddd«       t        j                  t        d¬«      5  | j                  |t        d	«      ¬«       ddd«       y# 1 sw Y   ŒýxY w# 1 sw Y   ŒÄxY w# 1 sw Y   Œ™xY w# 1 sw Y   ŒnxY w# 1 sw Y   yxY w)
zPTest that delete_index rejects special keys like Key.DOCUMENT and Key.EMBEDDING.z.Cannot delete index on special key '#document'r”   rr   NzCannot modify #embeddingrZ   r¥  r¦  r§  )	r   r   r™   rš   r›   r…   r   r¨  r©  rª  s     r    Ú&test_delete_index_rejects_special_keysr®  Œ  sY  € ä‹X€FÜ-Ó/€Mô 
�‰ÜÐJô
ñ Dð 	×Ñ =´c·l±lÐÔC÷Dô 
�‰”zÐ)CÔ	Dñ EØ×Ñ =´c·m±mÐÔD÷Eô 
�‰”zÐ)CÔ	Dñ DØ×Ñ =°lÐÔC÷Dô 
�‰”zÐ)DÔ	Eñ EØ×Ñ =°mÐÔD÷Eô 
�‰”zÐ)DÔ	Eñ FØ×Ñ =´c¸)³nÐÔE÷Fð F÷%Dð Dú÷Eð Eú÷Dð Dú÷Eð Eú÷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«      ¬«      }|j                  «       }|d   dk(  sJ ‚t        |d   t        «      sJ ‚y)zFTest that VectorIndexConfig.source_key accepts both str and Key types.Úmy_field©rl   rY   ÚtestNÚserialize_testrl   )r   rl   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¾  ¨  sG  € ô  ¨:Ô6€GØ×Ñ Ò+Ð+Ð+Ü�g×(Ñ(¬#Ô.Ð.Ð.ô  ¬3¨z«?Ô;€GØ×Ñ Ò+Ð+Ð+Ü�g×(Ñ(¬#Ô.Ð.Ð.ô  ¬3¯<©<Ô8€GØ×Ñ Ò,Ð,Ð,Ü�g×(Ñ(¬#Ô.Ð.Ð.ô  ¨6Ô2€GÜ¬3¨v«;Ô7€GØ×Ñ ×!3Ñ!3Ò3Ð3Ð3ô  ¨4Ô0€GØ×ÑÐ%Ð%Ð%ô  ¬3Ð/?Ó+@ÔA€GØ×$Ñ$Ó&€KØ�|Ñ$Ð(8Ò8Ð8Ð8Ü�k ,Ñ/´Ô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«      ¬«      }|j                  «       }|d   dk(  sJ ‚t        |d   t        «      sJ ‚y)zLTest that SparseVectorIndexConfig.source_key accepts both str and Key types.r°  r±  rY   r²  Nr³  rl   )r   rl   rÖ   r;   r   r¨  r´  rµ  s           r    Ú;test_sparse_vector_index_config_source_key_accepts_key_typerÀ  É  sG  € ô &°Ô<€GØ×Ñ Ò+Ð+Ð+Ü�g×(Ñ(¬#Ô.Ð.Ð.ô &´°Z³ÔA€GØ×Ñ Ò+Ð+Ð+Ü�g×(Ñ(¬#Ô.Ð.Ð.ô &´·±Ô>€GØ×Ñ Ò,Ð,Ð,Ü�g×(Ñ(¬#Ô.Ð.Ð.ô &°Ô8€GÜ%´°V³Ô=€GØ×Ñ ×!3Ñ!3Ò3Ð3Ð3ô &°Ô6€GØ×ÑÐ%Ð%Ð%ô &´Ð5EÓ1FÔG€GØ×$Ñ$Ó&€KØ�|Ñ$Ð(8Ò8Ð8Ð8Ü�k ,Ñ/´Ô5Ð5Ñ5r"   c                  óì  — t        j                  t        d¬«      5  t        d¬«       ddd«       t        j                  t        d¬«      5  t        ddg¬«       ddd«       t        j                  t        d¬«      5  t	        d¬«       ddd«       t        j                  t        d¬«      5  t	        ddi¬«       ddd«       y# 1 sw Y   ŒžxY w# 1 sw Y   ŒxxY w# 1 sw Y   ŒTxY w# 1 sw Y   yxY w)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ñ *Ü SÕ)÷*ô 
�‰”zÐ)HÔ	Iñ 7Ü e¨WÐ%5Õ6÷7ô 
�‰”zÐ)HÔ	Iñ 0Ü¨3Õ/÷0ô 
�‰”zÐ)HÔ	Iñ =Ü¨E°7Ð+;Õ<÷=ð =÷*ð *ú÷7ð 7ú÷0ð 0ú÷=ð =ús/   œCÁCÁ>CÂ.C*ÃCÃCÃC'Ã*C3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«       t	        j
                  t        d¬«      5  t        t        j                  ¬«       ddd«       t	        j
                  t        d¬«      5  t        d¬«       ddd«       t	        j
                  t        d¬«      5  t        d¬«       ddd«       t	        j
                  t        d¬«      5  t        d	¬«       ddd«       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«       t	        j
                  t        d¬«      5  t        t        j                  ¬«       ddd«       t	        j
                  t        d¬«      5  t        d¬«       ddd«       t        d
¬«      }|j                  d
k(  sJ ‚y# 1 sw Y   �ŒùxY w# 1 sw Y   �ŒÈxY w# 1 sw Y   �Œ¥xY w# 1 sw Y   �Œ‚xY w# 1 sw Y   �Œ_xY w# 1 sw Y   ŒÖxY w# 1 sw Y   Œ¤xY w# 1 sw Y   Œ€xY w)zGTest that source_key only allows #document, rejects other special keys.rY   r±  z source_key cannot begin with '#'r”   rZ   Nz	#metadataz#scorer§  r°  )	r   rl   r   r¨  r™   rš   r›   r©  r   )r¶  r·  r¸  r¹  rº  r»  s         r    Ú-test_config_source_key_validates_special_keysrÇ  û  sC  € ô  ¨;Ô7€GØ×Ñ Ò,Ð,Ð,ô  ¬3¯<©<Ô8€GØ×Ñ Ò,Ð,Ð,ô 
�‰”zÐ)KÔ	Lñ 3Ü \Õ2÷3ô 
�‰”zÐ)KÔ	Lñ 4Ü¤S§]¡]Õ3÷4ô 
�‰”zÐ)KÔ	Lñ 2Ü [Õ1÷2ô 
�‰”zÐ)KÔ	Lñ /Ü XÕ.÷/ô 
�‰”zÐ)KÔ	Lñ 0Ü YÕ/÷0ô  ¨:Ô6€GØ×Ñ Ò+Ð+Ð+ô &°Ô=€GØ×Ñ Ò,Ð,Ð,ô &´·±Ô>€GØ×Ñ Ò,Ð,Ð,ô 
�‰”zÐ)KÔ	Lñ 9Ü¨<Õ8÷9ô 
�‰”zÐ)KÔ	Lñ :Ü¬3¯=©=Õ9÷:ô 
�‰”zÐ)KÔ	Lñ 8Ü¨;Õ7÷8ô &°Ô<€GØ×Ñ Ò+Ð+Ñ+÷]3ñ 3ú÷4ñ 4ú÷2ñ 2ú÷/ñ /ú÷0ñ 0ú÷"9ð 9ú÷:ð :ú÷8ð 8ús`   Á$I(ÂI5ÃJÄJÄ2JÇJ)Ç7J5È5KÉ(I2É5I?ÊJÊJÊJ&Ê)J2Ê5J>ËK
c                  ó(  — t        «       } t        j                  t        «      5 }| j	                  dt        d¬«      ¬«       ddd«       t        j                  «      }d|j                  «       v sJ ‚d|j                  «       v sJ ‚y# 1 sw Y   ŒGxY w)zkTest that SparseVectorIndexConfig raises ValueError when source_key is provided without embedding_function.Úinvalid_sparserÿ   r±  )rs   r2   Nrl   r}   )	r   r™   rš   r›   rt   r   r;   ÚvalueÚlower)rn   Úexc_infoÚ	error_msgs      r    Ú5test_sparse_vector_config_requires_ef_with_source_keyrÎ  8  s‰   € ä‹X€Fô 
�‰”zÓ	"ð 
 hØ×ÑØ Ü*Ø'ôð 	ô 	
÷
ô �H—N‘NÓ#€IØ˜9Ÿ?™?Ó,Ñ,Ð,Ð,Ø 9§?¡?Ó#4Ñ4Ð4Ñ4÷
ð 
ús   ¤BÂBc            	      ó`  — t        j                  t        t        f«      5 } t	        t
        j                  ¬«       ddd«       t         j                  «      }d|j                  «       v sJ ‚d|j                  «       v s&d|j                  «       v sd|j                  «       v sJ ‚t        j                  t        t        f«      5 } t        d¬«       ddd«       t        | j                  «      }d	|j                  «       v sJ ‚d|j                  «       v sd|j                  «       v sJ ‚t        j                  t        t        f«      5 } t        d¬«       ddd«       t        | j                  «      }d	|j                  «       v sJ ‚d|j                  «       v sd|j                  «       v sJ ‚t        j                  t        t        f«      5 } t        d¬«       ddd«       t        | j                  «      }d	|j                  «       v sJ ‚d|j                  «       v sd|j                  «       v sJ ‚t        j                  t        t        f«      5 } t        d
¬«       ddd«       t        | j                  «      }d	|j                  «       v sJ ‚d|j                  «       v sd|j                  «       v sJ ‚t        j                  t        t        f«      5 } t        d¬«       ddd«       t        | j                  «      }d	|j                  «       v sJ ‚d|j                  «       v sd|j                  «       v sJ ‚t        j                  t        t        f«      5 } t        d¬«       ddd«       t        | j                  «      }d	|j                  «       v sJ ‚d|j                  «       v sd|j                  «       v sJ ‚t        j                  t        t        f«      5 } t!        d
¬«       ddd«       t        | j                  «      }d	|j                  «       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«       t        | j                  «      }d	|j                  «       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 ‚y# 1 sw Y   �ŒxY w# 1 sw Y   �ŒzxY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒŽxY w# 1 sw Y   �ŒxY w# 1 sw Y   �Œ¢xY w# 1 sw Y   �Œ,xY w# 1 sw Y   �Œ¶xY w# 1 sw Y   �Œ2xY w).z;Test that all config classes reject invalid/unknown fields.rº   Nrs   ÚextraÚ	permittedznot a valid fieldr²  )Úinvalid_fieldrÒ  rÂ  g®Gáz®ó?Tr¥   r]  é   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Í  r2   rø   s       r    Ú)test_config_classes_reject_invalid_fieldsræ  L  s†  € ô 
�‰œ
¤OÐ4Ó	5ð 2¸Ü¤C§L¡LÕ1÷2ô �H—N‘NÓ#€IØ�I—O‘OÓ%Ñ%Ð%Ð%à�9—?‘?Ó$Ñ$Ø˜)Ÿ/™/Ó+Ñ+Ø )§/¡/Ó"3Ñ3ðð	4ô 
�‰œ
¤OÐ4Ó	5ð 0¸Ü¨Õ/÷0ô �H—N‘NÓ#€IØ˜iŸo™oÓ/Ñ/Ð/Ð/Ø�i—o‘oÓ'Ñ'¨;¸)¿/¹/Ó:KÑ+KÐKÐKô 
�‰œ
¤OÐ4Ó	5ð -¸Ü VÕ,÷-ô �H—N‘NÓ#€IØ˜iŸo™oÓ/Ñ/Ð/Ð/Ø�i—o‘oÓ'Ñ'¨;¸)¿/¹/Ó:KÑ+KÐKÐKô 
�‰œ
¤OÐ4Ó	5ð 8¸Ü!°Õ7÷8ô �H—N‘NÓ#€IØ˜iŸo™oÓ/Ñ/Ð/Ð/Ø�i—o‘oÓ'Ñ'¨;¸)¿/¹/Ó:KÑ+KÐKÐKô 
�‰œ
¤OÐ4Ó	5ð 2¸Ü¨SÕ1÷2ô �H—N‘NÓ#€IØ˜iŸo™oÓ/Ñ/Ð/Ð/Ø�i—o‘oÓ'Ñ'¨;¸)¿/¹/Ó:KÑ+KÐKÐKô 
�‰œ
¤OÐ4Ó	5ð 5¸Ü ¨tÕ4÷5ô �H—N‘NÓ#€IØ˜iŸo™oÓ/Ñ/Ð/Ð/Ø�i—o‘oÓ'Ñ'¨;¸)¿/¹/Ó:KÑ+KÐKÐKô 
�‰œ
¤OÐ4Ó	5ð 4¸Ü¨dÕ3÷4ô �H—N‘NÓ#€IØ˜iŸo™oÓ/Ñ/Ð/Ð/Ø�i—o‘oÓ'Ñ'¨;¸)¿/¹/Ó:KÑ+KÐKÐKô 
�‰œ
¤OÐ4Ó	5ð +¸Ü cÕ*÷+ô �H—N‘NÓ#€IØ˜iŸo™oÓ/Ñ/Ð/Ð/ô ØØØØØØØô€Fð ×!Ñ! SÒ(Ð(Ð(Ø×Ñ 2Ò%Ð%Ð%ô 
�‰œ
¤OÐ4Ó	5ð ,¸Ü sÕ+÷,ô �H—N‘NÓ#€IØ˜iŸo™oÓ/Ñ/Ð/Ð/ô $ò Ùðáðñ  ðñ ð	ñ
 ðñ ðñ ðñ ðñ  ðñ ðñ !#ðñ ðñ !"ðñ ðñ ðñ  ð!€Lð& ×%Ñ%¨Ò+Ð+Ð+Ø×$Ñ$¨Ò*Ð*Ð*Ø×'Ñ'¨3Ò.Ð.Ð.ä�|Ð%8Ô9Ð9Ð9Ü�|Ð%5Ô6Ð6Ð6Ü�|Ð%9Ô:Ð:Ð:Ð:÷e2ñ 2ú÷0ñ 0ú÷-ñ -ú÷8ñ 8ú÷2ñ 2ú÷5ñ 5ú÷4ñ 4ú÷+ñ +ú÷*,ñ ,úsk    T;ÃUÅUÇ	U"ÉU/ËU<ÍV	ÏVÑ&V#Ô;UÕUÕUÕ"U,Õ/U9Õ<VÖ	VÖV Ö#V-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   r>   rV   r™  r›  r¡  r£  r«  r®  r¾  rÀ  rÅ  rÇ  rÎ  ræ  r.   r"   r    ú<module>rë     s±   ð÷÷ ÷ ÷ ó õ$ 7ß "Ñ "Ý $Û ôNÐ"9¸$¸s¹)Ñ"Dô Nô*&Ð-¨d°3©iÑ8ô &÷<i*ñ i*óXU	2ó@ó$'óT)óXFó@Fó86óB6óB=ó":,óz5ô(u;r"   