
    'XhB                     P    d dl Zd dlmZ d dlmZmZ d	dZd	dZd	dZ	d	dZ
d	dZy)
    N)models)reciprocal_rank_fusiondistribution_based_score_fusionc            	      l   t        j                  ddd      t        j                  ddd      t        j                  ddd      gt        j                  d	d
d      t        j                  ddd      t        j                  ddd      t        j                  ddd      gg} t        |       }|d   j                  dk(  sJ |d   j                  dv sJ t	        j
                  |d   j                  d      sJ |d   j                  dv sJ t	        j
                  |d   j                  d      sJ y )N1皙?   idscoreversion2皙?3333333?5g      (@6g       @7g      @g      @r   )r   r         ?   )r   ScoredPointr   r   npiscloser   	responsesfuseds     M/RAG/venv/lib/python3.12/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            
         t        j                  ddd      t        j                  ddd      t        j                  ddd      gt        j                  ddd      t        j                  ddd	      t        j                  d
dd      t        j                  ddd      t        j                  ddd      gg} t        | d      }|d   j                  dk(  sJ |d   j                  dk(  sJ |d   j                  d
k(  sJ y )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                  ,   g g} t        |       }|g k(  sJ t        j                  ddd      t        j                  ddd      t        j                  ddd      gg g} t        |       }|d	   j                  dk(  sJ t	        j
                  |d	   j                  d
      sJ |d   j                  dk(  sJ t	        j
                  |d   j                  d      sJ |d   j                  dk(  sJ t	        j
                  |d   j                  d      sJ y )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                  V   g g} t        | d      }|g k(  sJ t        j                  ddd      t        j                  ddd      t        j                  ddd	      gg g} t        | d      }|d   j                  dk(  sJ |d   j                  dk(  sJ |d
   j                  dk(  sJ y )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                     d} t        j                  dd|       t        j                  dd|       t        j                  dd|       gg g}t        t        j                  dd|       ggd      }|d   j                  dk(  sJ |d   j                  dk(  sJ t        |d      }t        |      dk(  sJ t        |D cg c]  }|j                  dk(   c}      sJ y c c}w )	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   ?C)returnN)numpyr   qdrant_client.httpr   qdrant_client.hybrid.fusionr   r   r   r*   r,   r.   r3    r   r   <module>r9      s'     % _-0.-0*0r   