
    OhC>                        d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZ d dlmZ d dlmZ d Zd Zd Zd	 Zd
 Zd Zd Zej2                  j5                  dg d      d        Zej2                  j5                  dd d g      d        Zd Zej2                  j5                  dd dfd dfg      d        Zej2                  j5                  dg d      d        Zej2                  jA                   e       xr ed      d        Z!d Z"y)     N)using_string_dtype)HAS_PYARROW)	DataFrameIndexSeriesconcatmerge)	get_arrayc                 z   t        ddgdz  it              }t        ddgdz  it              }|j                         }t        ||gd      }| rXt	        j
                  t        |d      t        |d            sJ t	        j
                  t        |d      t        |d            sZJ t	        j
                  t        |d      t        |d            rJ t	        j
                  t        |d      t        |d            rJ d|j                  d<   | rXt	        j
                  t        |d      t        |d            rJ t	        j
                  t        |d      t        |d            sJ d|j                  d	<   | r,t	        j
                  t        |d      t        |d            rJ t        j                  ||       y )
Nba   dtype   axisdr   r   r   r   )
r   objectcopyr   npshares_memoryr
   iloctmassert_frame_equal)using_copy_on_writedfdf2df_origresults        m/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/pandas/tests/copy_view/test_functions.pytest_concat_framesr$      s|   	C##6	2B
S3%!)$F
3CggiGRIA&F	&# 6	"c8JKKK	&# 6	#s8KLLL##Ifc$:Ib#<NOOO##Ifc$:Ic3<OPPPFKK##Ifc$:Ib#<NOOO	&# 6	#s8KLLLFKK##Ifc$:Ic3<OPPP"g&    c                 z   t        ddgdz  it              }t        ddgdz  it              }t        ||gd      }| rXt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            sZJ t        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            rJ |j                         }d|j                  d<   | rXt        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            sJ d|j                  d<   | r,t        j                  t        |d      t        |d            rJ t        j                  ||       y )	Nr   r   r   r   r   r   r   r   )
r   r   r   r   r   r
   r   r   r   r   )r   r   r    r"   expecteds        r#   !test_concat_frames_updating_inputr(   +   sz   	C##6	2B
S3%!)$F
3CRIA&F	&# 6	"c8JKKK	&# 6	#s8KLLL##Ifc$:Ib#<NOOO##Ifc$:Ic3<OPPP{{}HBGGDM##Ifc$:Ib#<NOOO	&# 6	#s8KLLLCHHTN##Ifc$:Ic3<OPPP&(+r%   c                    t        ddgd      }t        ddgd      }|j                         }|j                         }t        ||gd      }| rXt        j                  t        |d      |j                        sJ t        j                  t        |d      |j                        sZJ t        j                  t        |d      |j                        rJ t        j                  t        |d      |j                        rJ d	|j                  d
<   | rXt        j                  t        |d      |j                        rJ t        j                  t        |d      |j                        sJ d|j                  d<   | r,t        j                  t        |d      |j                        rJ t        j                  ||       t        j                  ||       y )Nr      r   namer      r   r   d   r     r   )
r   r   r   r   r   r
   valuesr   r   assert_series_equal)r   serser2ser_orig	ser2_origr"   s         r#   test_concat_seriesr6   C   st   
!Qc
"C1a&s#DxxzH		IS$Ka(F	&# 6

CCC	&# 6DDD##Ifc$:CJJGGG##Ifc$:DKKHHHFKK##Ifc$:CJJGGG	&# 6DDDFKK##Ifc$:DKKHHH3)4+r%   c                 v   t        g dg dd      }t        dg di      }t        dg di      }t        t        ||gd      |gd      }|j                         }| rt        j                  t        |d	      t        |d	            sJ t        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            sJ t        j                  t        |d	      t        |d	            rJ t        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            rJ d
|j                  d<   | r,t        j                  t        |d	      t        |d	            rJ t        j                  ||       y )Nr   r*   r   )g?g?g333333?r   r   cr-         r   r   r   r   r.   r   )	r   r   r   r   r   r
   r   r   r   )r   df1r    df3r"   r'   s         r#   test_concat_frames_chainedr@   ]   su   
)/:
;C
S)$
%C
S)$
%CVS#JQ/5A>F{{}H	&# 6	#s8KLLL	&# 6	#s8KLLL	&# 6	#s8KLLL##Ifc$:Ic3<OPPP##Ifc$:Ic3<OPPP##Ifc$:Ic3<OPPPCHHTN##Ifc$:Ic3<OPPP&(+r%   c                 p   t        g dd      }t        g dd      }t        g dd      }t        t        ||gd      |gd      }|j                         }| rt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            rJ d	|j                  d
<   | r,t        j                  t        |d      t        |d            rJ t        j                  ||       y )Nr8   r   r+   r;   r:   r   r   r   r.   r   )	r   r   r   r   r   r
   r   r   r   )r   ser1r3   ser3r"   r'   s         r#   test_concat_series_chainedrD   t   sl   )#&D)#&D)#&DVT4Lq148qAF{{}H	&# 6	$8LMMM	&# 6	$8LMMM	&# 6	$8LMMM##Ifc$:IdC<PQQQ##Ifc$:IdC<PQQQ##Ifc$:IdC<PQQQDIIaL##Ifc$:IdC<PQQQ&(+r%   c                    t        ddgd      }t        ddgd      }t        ddgddgd      }t        ||gd	      }| rXt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            sZJ t        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            rJ d
|j                  d<   | rXt        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            sJ t        j                  ||       d|j                  d<   | r,t        j                  t        |d      t        |d            rJ t        j                  ||       y )Nr   r*   r   r+   r   r-   r   r9   r   r.   r   r/   )	r   r   r   r   r   r
   r   r   r   )r   r2   r3   r'   r"   s        r#   !test_concat_series_updating_inputrF      s   
!Qc
"C1a&s#D1vQF34HS$Ka(F	&# 6	#s8KLLL	&# 6	$8LMMM##Ifc$:Ic3<OPPP##Ifc$:IdC<PQQQCHHQK##Ifc$:Ic3<OPPP	&# 6	$8LMMM&(+DIIaL##Ifc$:IdC<PQQQ&(+r%   c                    t        g ddd      }t        g dd      }t        ||gd      }|j                         }| rt	        j
                  t        |d      t        |d            sJ t	        j
                  t        |d	      t        |d	            sJ t	        j
                  t        |d      t        |d            sJ t	        j
                  t        |d      t        |d            rJ t	        j
                  t        |d	      t        |d	            rJ t	        j
                  t        |d      t        |d            rJ d
|j                  d<   | r,t	        j
                  t        |d      t        |d            rJ d
|j                  d<   | r,t	        j
                  t        |d      t        |d            rJ t        j                  ||       y )Nr8   r   )r   r:   r;   r   r+   r   r   r:   r.   r   r   )
r   r   r   r   r   r   r
   r   r   r   )r   r   r2   r"   r'   s        r#   test_concat_mixed_series_framerH      s   	+	,B

%CRIA&F{{}H	&# 6	"c8JKKK	&# 6	"c8JKKK	&# 6	#s8KLLL##Ifc$:Ib#<NOOO##Ifc$:Ib#<NOOO##Ifc$:Ic3<OPPPCHHQK##Ifc$:Ic3<OPPPBGGDM##Ifc$:Ib#<NOOO&(+r%   r   )TNFc                    t        dddgi      }t        dddgi      }t        ||gd|      }| s|du rYt        j                  t	        |d      t	        |d            sJ t        j                  t	        |d      t	        |d            sJ y t        j                  t	        |d      t	        |d            rJ t        j                  t	        |d      t	        |d            rJ y )	Nr   r   r*   r   g      ?g      @)r   r   F)r   r   r   r   r
   r   r   r   r    r"   s        r#   test_concat_copy_keywordrK      s    	C!Q=	!B
S3*%
&CRIAD1Fdem	"c 2Ifc4JKKK	#s 3Yvs5KLLL##Ib#$6	&#8NOOO##Ic3$7639OPPPPr%   funcc                 (     | j                   |fi |S Nr	   r>   r    kwargss      r#   <lambda>rR      s    9399S#;F#; r%   c                     t        | |fi |S rN   rO   rP   s      r#   rR   rR      s    5c#<V#< r%   c                    t        t        g dt              g dd      }t        t        g dt              g dd      }|j                         }|j                         } |||d      }| rt	        j
                  t        |d	      t        |d	            sJ t	        j
                  t        |d
      t        |d
            sJ t	        j
                  t        |d      t        |d            sJ t	        j
                  t        |d      t        |d            rZJ t	        j
                  t        |d	      t        |d	            rJ t	        j
                  t        |d
      t        |d
            rJ d|j                  d<   | rXt	        j
                  t        |d	      t        |d	            rJ t	        j
                  t        |d
      t        |d
            sJ d|j                  d<   | r,t	        j
                  t        |d
      t        |d
            rJ t        j                  ||       t        j                  ||       y )Nr   r   r:   r   r8   keyr   r;   rW   r   rW   onr   r   r   r   r   r*   )
r   r   r   r   r   r   r
   r   r   r   )r   rL   r>   r    df1_origdf2_origr"   s          r#   test_merge_on_keyr^      s    F?&A	R
SC
F?&A	R
SCxxzHxxzH#su%F	&# 6	#s8KLLL	&# 6	#s8KLLL	&% 8)C:OPPP##Ife$<iU>STTT##Ifc$:Ic3<OPPP##Ifc$:Ic3<OPPPFKK##Ifc$:Ic3<OPPP	&# 6	#s8KLLLFKK##Ifc$:Ic3<OPPP#x(#x(r%   c                    t        dg di      }t        dg di      }|j                         }|j                         }t        ||dd      }| rXt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            sZJ t        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            rJ d|j                  d<   | rXt        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            sJ d|j                  d	<   | r,t        j                  t        |d      t        |d            rJ t        j                  ||       t        j                  ||       y )
Nr   r8   r   r;   T)
left_indexright_indexr   r   r   )	r   r   r	   r   r   r
   r   r   r   )r   r>   r    r\   r]   r"   s         r#   test_merge_on_indexrb      s   
S)$
%C
S)$
%CxxzHxxzH3$?F	&# 6	#s8KLLL	&# 6	#s8KLLL##Ifc$:Ic3<OPPP##Ifc$:Ic3<OPPPFKK##Ifc$:Ic3<OPPP	&# 6	#s8KLLLFKK##Ifc$:Ic3<OPPP#x(#x(r%   z	func, howc                      t        || fddi|S NrZ   rW   rO   rP   s      r#   rR   rR         E#s$Gu$G$G r%   rightc                      t        | |fddi|S rd   rO   rP   s      r#   rR   rR     re   r%   leftc                 l   t        t        g dt              g dd      }t        t        ddgt              ddgd	      }|j                         }|j                         } ||||
      }| rt	        j
                  t        |d      t        |d            sJ t	        j
                  t        |d      t        |d            rJ |j                  j                  d      sJ |j                  j                  d      sJ t	        j
                  t        |d      t        |d            |dk(  u sJ t	        j
                  t        |d      t        |d            rZJ t	        j
                  t        |d      t        |d            rJ t	        j
                  t        |d      t        |d            rJ |dk(  rd|j                  d<   nd|j                  d<   | r,t	        j
                  t        |d      t        |d            rJ t        j                  ||       t        j                  ||       y )NrU   r   r8   rV   r   r   r-   r<   rX   )howr   r   rW   rh   r   r[   )r   r   r   r   r   r   r
   _mgr_has_no_referencer   r   r   )r   rL   rj   r>   r    r\   r]   r"   s           r#   test_merge_on_key_enlarging_onerm     s    F?&A	R
SC
FC:V<Aq6J
KCxxzHxxzH#s$F	&# 6	#s8KLLL##Ifc$:Ic3<OPPPxx))!,,,xx))!,,,	&% 8)C:OP6M
 	
 
 ##Ife$<iU>STTT##Ifc$:Ic3<OPPP##Ifc$:Ic3<OPPP
f}DD##Ifc$:Ic3<OPPP#x(#x(r%   c                    t        dddgi      }t        dddgi      }|j                  ||dd      }| s|d	u rYt        j                  t	        |d      t	        |d            sJ t        j                  t	        |d      t	        |d            sJ y t        j                  t	        |d      t	        |d            rJ t        j                  t	        |d      t	        |d            rJ y )
Nr   r   r*   r   r   g      @T)r   r`   ra   F)r   r	   r   r   r
   rJ   s        r#   test_merge_copy_keywordro   1  s    	C!Q=	!B
S1c(O
$CXXc4XHFdem	"c 2Ifc4JKKK	#s 3Yvs5KLLL##Ib#$6	&#8NOOO##Ic3$7639OPPPPr%   zZTODO(infer_string); result.index infers str dtype while both df1 and df2 index are object.)reasonc                    t        g ddt              }t        dg di|j                  d            }t        d	g d
i|j                  d            }|j                         }|j                         }|j	                  |d      }| rt        j                  t        |d      t        |d            sJ t        j                  t        |d	      t        |d	            sJ t        j                  t        |j                        t        |j                              sJ t        j                  t        |j                        t        |j                              rZJ t        j                  t        |d      t        |d            rJ t        j                  t        |d	      t        |d	            rJ d|j                  d<   | rXt        j                  t        |d      t        |d            rJ t        j                  t        |d	      t        |d	            sJ d|j                  d<   | r,t        j                  t        |d	      t        |d	            rJ t        j                  ||       t        j                  ||       y )NrU   rW   r,   r   r   r8   Tdeepindexr   r;   rY   r   r   r   )r   r   r   r   joinr   r   r
   rv   r   r   r   )r   df_indexr>   r    r\   r]   r"   s          r#   test_join_on_keyry   @  s    _5?H
S)$HMMtM,D
EC
S)$HMMtM,D
ECxxzHxxzHXXceX$F	&# 6	#s8KLLL	&# 6	#s8KLLL	&,, 73999MNNN##Ifll$;Ysyy=QRRR##Ifc$:Ic3<OPPP##Ifc$:Ic3<OPPPFKK##Ifc$:Ic3<OPPP	&# 6	#s8KLLLFKK##Ifc$:Ic3<OPPP#x(#x(r%   c                 :   t        g ddt              }t        dg di|j                  d            }t        d	g d
i|j                  d            t        dg di|j                  d            g}|j                         }|D cg c]  }|j                          }}|j	                  |      }| rJt        j                  t        |d      t        |d            sJ t        j                  t        |d	      t        |d   d	            sJ t        j                  t        |d      t        |d   d            sJ t        j                  t        |j                        t        |j                              sJ t        j                  t        |j                        t        |d   j                              rJ t        j                  t        |j                        t        |d   j                              rJ t        j                  t        |d      t        |d            rJ t        j                  t        |d	      t        |d   d	            rJ t        j                  t        |d      t        |d   d            rJ d|j                  d<   | rt        j                  t        |d      t        |d            rJ t        j                  t        |d	      t        |d   d	            sJ t        j                  t        |d      t        |d   d            sJ d|j                  d<   | r^t        j                  t        |d	      t        |d   d	            rJ t        j                  t        |d      t        |d   d            sJ d|j                  d<   | r/t        j                  t        |d      t        |d   d            rJ t        j                  ||       t        ||      D ]  \  }}t        j                  ||        y c c}w )NrU   rW   rr   r   r8   Trs   ru   r   r;   r:   )      	   r   r   r   r   r[   )r   r   r   r   rw   r   r   r
   rv   r   r   r   zip)	r   rx   r>   dfs_listr\   r   dfs_list_origr"   r!   s	            r#   $test_join_multiple_dataframes_on_keyr   f  s   _5?H
S)$HMMtM,D
EC3	"(--T-*BC3	"(--T-*BCH
 xxzH)122RWWY2M2XXhF	&# 6	#s8KLLL	&# 6	(1+s8STTT	&# 6	(1+s8STTT	&,, 73999MNNN##fll#Yx{/@/@%A
 	
 
 ##fll#Yx{/@/@%A
 	
 
 ##Ifc$:Ic3<OPPP##Ifc$:IhqkSV<WXXX##Ifc$:IhqkSV<WXXXFKK##Ifc$:Ic3<OPPP	&# 6	(1+s8STTT	&# 6	(1+s8STTTFKK##Ifc$:IhqkSV<WXXX	&# 6	(1+s8STTTFKK##Ifc$:IhqkSV<WXXX#x(8]3 +G
b'*+I 3s   P)#numpyr   pytestpandas._configr   pandas.compatr   pandasr   r   r   r   r	   pandas._testing_testingr   pandas.tests.copy_view.utilr
   r$   r(   r6   r@   rD   rF   rH   markparametrizerK   r^   rb   rm   ro   xfailry   r    r%   r#   <module>r      sE     - %   1'0,0,4,.,.,2,2 !45Q 6Q 
;<)):)6 	GQ	GP))> !45Q 6Q ([$  
)
)B/+r%   