
    <iB                     Z    S SK rS SKJr  S SKJrJr  S	S jrS	S jrS	S jr	S	S jr
S	S jrg)
    N)models)reciprocal_rank_fusiondistribution_based_score_fusionc            
      r   [         R                  " SSSS9[         R                  " SSSS9[         R                  " SSSS9/[         R                  " S	S
SS9[         R                  " SSSS9[         R                  " SSSS9[         R                  " SSSS9//n [        U 5      nUS   R                  S:X  d   eUS   R                  S;   d   e[        R
                  " US   R                  S5      (       d   eUS   R                  S;   d   e[        R
                  " US   R                  S5      (       d   eg )N1皙?   idscoreversion2皙?3333333?5g      (@6g       @7g      @g      @r   )r   r         ?   )r   ScoredPointr   r   npiscloser   	responsesfuseds     ]/home/james-whalen/.local/lib/python3.13/site-packages/qdrant_client/hybrid/test_reranking.pytest_reciprocal_rank_fusionr      s!    #S!<#S!<#S!<	
 #T1=#S!<#S!<#S!<		
I #9-E8;;#8;;*$$$::eAhnne,,,,8;;*$$$::eAhnne,,,,    c                     [         R                  " SSSS9[         R                  " SSSS9[         R                  " SSSS9/[         R                  " SSSS9[         R                  " SSS	S9[         R                  " S
SSS9[         R                  " SSSS9[         R                  " SSSS9//n [        U SS9nUS   R                  S:X  d   eUS   R                  S:X  d   eUS   R                  S
:X  d   eg )Nr	   r        @U@r   r   r         S@         Q@g      O@g     N@   g     L@   g     I@r   g      F@limit)r   r   r   r   r   s     r   $test_distribution_based_score_fusionr*      s     !Qd;!Qd;!Qd;	
 !Qd;!Qd;!Qd;!Qd;!Qd;	
I ,IQ?E8;;!8;;!8;;!r   c                  L   / /n [        U 5      nU/ :X  d   e[        R                  " SSSS9[        R                  " SSSS9[        R                  " SSSS9// /n [        U 5      nUS	   R                  S:X  d   e[        R
                  " US	   R                  S
5      (       d   eUS   R                  S:X  d   e[        R
                  " US   R                  S5      (       d   eUS   R                  S:X  d   e[        R
                  " US   R                  S5      (       d   eg )Nr   r   r	   r
   r   r   r   r   r   r   gUUUUUU?r   g      ?)r   r   r   r   r   r   r   r   s     r   +test_reciprocal_rank_fusion_empty_responsesr,   6   s   13I"9-EB;; #S!<#S!<#S!<	

 	I #9-E8;;#::eAhnne,,,,8;;#::eAhnne,,,,8;;#::eAhnne,,,,r   c                  F   / /n [        U SS9nU/ :X  d   e[        R                  " SSSS9[        R                  " SSSS9[        R                  " SSS	S9// /n [        U SS9nUS   R                  S:X  d   eUS   R                  S:X  d   eUS
   R                  S:X  d   eg )Nr'   r(   r	   r   r!   r"   r#   r$   r%   r   )r   r   r   r   r   s     r   3test_distribution_based_score_fusion_empty_responser.   N   s    13I+IQ?EB;; !Qd;!Qd;!Qd;	

 	I ,IQ?E8;;!8;;!8;;!r   c                     Sn [         R                  " SSU S9[         R                  " SSU S9[         R                  " SSU S9// /n[        [         R                  " SSU S9//SS9nUS   R                  S:X  d   eUS   R                  S:X  d   e[        USS9n[        U5      S:X  d   e[        U Vs/ s H  o3R                  S:H  PM     sn5      (       d   eg s  snf )	Nr!   r	   r   r"   r$   r'   r(   r   )r   r   r   r   r   lenall)r   r   r   ps       r   2test_distribution_based_score_fusion_zero_variancer3   c   s    E !Qe<!Qe<!Qe<	

 	I ,


1E
:	;<AE 8;;!8>>S   +IQ?Eu:??.13.////.s   4C)returnN)numpyr   qdrant_client.httpr   qdrant_client.hybrid.fusionr   r   r   r*   r,   r.   r3    r   r   <module>r9      s'     % _-0.-0*0r   