
    3i                     >    S SK JrJr  S SKJr  SS jrSS jrSS jrg)    )assignmurmur3hasher)sqrtNc                  t   ^ / SQmSn S[         S[         S[        4U4S jjn[        U TUS5      S   S:X  d   eg )	N)abckeymemberreturnc                 &   > TR                  U 5      $ )N)index)r   r
   memberss     p/home/james-whalen/.local/lib/python3.13/site-packages/chromadb/test/segment/distributed/test_rendezvous_hash.pymock_hasher)test_rendezvous_hash.<locals>.mock_hasher
   s    }}V$$       r   r	   )strintr   )r
   r   r   s     @r   test_rendezvous_hashr      sG    G
C%C %c %c % #wQ/2c999r   c                     Sn Sn[        U 5       Vs/ s H  n[        U5      PM     nnU[        U5      -  n[        US[        U5      -  -  SS[        U5      -  -
  -  5      nSU-  nU Vs0 s H  owS_M     nn[        U5       H(  nSU 3n	[	        X[
        S5      S   nX==   S-  ss'   M*     U H  n[        X   U-
  5      U:  a  M   e   g s  snf s  snf )N
   i  r      r   key_)ranger   lenr   r   r   abs)
member_countnum_keysinodesexpectedstddev	tolerancenodekey_distributionr
   s
             r   test_even_distributionr(      s    LH"<010SV0E1#e*$H (a#e*n-QU^1CDEF F
I -22EDaE28_QCjc-3A6!#  #)H45	AAA % 2 3s   C,Cc                     Sn SnSn[        U 5       Vs/ s H  n[        U5      PM     nnU[        U5      -  U-  n[        X-  S[        U5      -  -  SS[        U5      -  -
  -  5      nSU-  nU Vs0 s H  oS_M     n	n[        U5       HH  nSU 3n
[	        X[
        U5      n[        [        U5      5      U:X  d   eU H  nX==   S-  ss'   M     MJ     U H  n[        X   U-
  5      U:  a  M   e   g s  snf s  snf )Nr   i'  r   r   r   r   )r   r   r   r   r   r   setr   )r   r    replicationr!   r"   r#   r$   r%   r&   r'   r
   nodes_assigneds               r   #test_multi_assign_even_distributionr-   )   s   LHK"<010SV0E1#e*${2H((AE
N;q1s5z>?QRSFF
I -22EDaE28_QCjM;G3~&';666"D"a'" #  #)H45	AAA # 2 3s   C83C=)r   N)chromadb.utils.rendezvous_hashr   r   mathr   r   r(   r-    r   r   <module>r1      s    @ :B2Br   