Ë
    lQêjÍ  ã                   ó8   — d dl mZmZ d dlmZ dd„Zdd„Zdd„Zy)é    )ÚassignÚmurmur3hasher)ÚsqrtNc                  ón   ‡— g d¢Šd} dt         dt         dt        fˆfd„}t        | ‰|d«      d   dk(  sJ ‚y )	N)ÚaÚbÚcÚkeyÚmemberÚreturnc                 ó&   •— ‰j                  | «      S )N)Úindex)r   r
   Úmemberss     €ú{/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/test/segment/distributed/test_rendezvous_hash.pyÚmock_hasherz)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Ó/°Ñ2°cÒ9Ð9Ñ9r   c                  ó¨  — d} d}t        | «      D �cg c]  }t        |«      ‘Œ }}|t        |«      z  }t        |dt        |«      z  z  ddt        |«      z  z
  z  «      }d|z  }|D �ci c]  }|d“Œ }}t        |«      D ])  }d|› �}	t	        |	|t
        d«      d   }||xx   dz  cc<   Œ+ |D ]  }t        ||   |z
  «      |k  rŒJ ‚ y c c}w c c}w )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˜ŒS��VÐ1€EÐ1àœ#˜e›*Ñ$€Hô �(˜a¤# e£*™nÑ-°°Q¼¸U»±^Ñ1CÑDÓE€Fð �F‘
€Ið -2Ö2 D˜˜a™Ð2ÐÐ2Ü�8‹_ò $ˆØ�Q�CˆjˆÜ�c˜5¤-°Ó3°AÑ6ˆØ˜Ó !Ñ#Ôð$ð ò BˆÜÐ# DÑ)¨HÑ4Ó5¸	ÓAÐAÐAñBùò% 2ùò 3s   ’C
Á)
Cc                  óò  — d} d}d}t        | «      D �cg c]  }t        |«      ‘Œ }}|t        |«      z  |z  }t        ||z  dt        |«      z  z  ddt        |«      z  z
  z  «      }d|z  }|D �ci c]  }|d“Œ }	}t        |«      D ]F  }d|› �}
t	        |
|t
        |«      }t        t        |«      «      |k(  sJ ‚|D ]  }|	|xx   dz  cc<   Œ ŒH |D ]  }t        |	|   |z
  «      |k  rŒJ ‚ y c c}w c c}w )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,   )   s1  € Ø€LØ€HØ€KÜ" <Ó0Ö1˜ŒS��VÐ1€EÐ1Øœ#˜e›*Ñ$ {Ñ2€Hä�(˜[Ñ(¨A´°E³
©NÑ;¸qÀ1ÄsÈ5ÃzÁ>Ñ?QÑRÓS€FØ�F‘
€Ið -2Ö2 D˜˜a™Ð2ÐÐ2Ü�8‹_ò (ˆØ�Q�CˆjˆÜ  U¬M¸;ÓGˆä”3�~Ó&Ó'¨;Ò6Ð6Ð6Ø"ò 	(ˆDØ˜TÓ" aÑ'Ô"ñ	(ð(ð ò BˆäÐ# DÑ)¨HÑ4Ó5¸	ÓAÐAÐAñBùò# 2ùò 3s   ”C/Á1
C4)r   N)Úchromadb.utils.rendezvous_hashr   r   Úmathr   r   r'   r,   © r   r   ú<module>r0      s   ðß @Ý ó:óBô2Br   