
    Mh;*                         S SK rS SKrS SKJr  S SKJrJr  S SK	J
r   " S S5      r\R                  R                  SSS/5      S	 5       rS
 rS rS rS rS rS rS rg)    N)join)
inner_joinleft_outer_joinc                   n    \ rS rSr\R
                  R                  S/ SQ5      S 5       rS rS r	S r
Srg	)
TestIndexer   dtype)int32int64float32float64objectc                    [         R                  n[        R                  " SUS9n[        R                  " SSUS9n[        R                  " / US9nU" X45      u  pgn[        U[        R                  5      (       d   e[        U[        R                  5      (       d   e[        U[        R                  5      (       d   e[        R                  " U[        R                  " SUS95        [        R                  " / SQ[        R                  S9n	[        R                  " Xy5        [        R                  " / SQ[        R                  S9n	[        R                  " X5        U" XT5      u  pgn[        R                  " Xd5        [        R                  " / SQ[        R                  S9n	[        R                  " Xy5        [        R                  " / SQ[        R                  S9n	[        R                  " X5        U" X55      u  pgn[        R                  " Xc5        [        R                  " / SQ[        R                  S9n	[        R                  " Xy5        [        R                  " / SQ[        R                  S9n	[        R                  " X5        g )	N   r	         )r      r   r   )r   r   r   r   r   )r   r   r   )r   r   r   )
libjoinouter_join_indexernparangearray
isinstancendarraytmassert_numpy_array_equalintp)
selfr	   indexerleftrightemptyresultlindexerrindexerexps
             M/var/www/html/env/lib/python3.13/site-packages/pandas/tests/libs/test_join.pytest_outer_join_indexer#TestIndexer.test_outer_join_indexer   s    ,,yy%(		!Qe,5)%,T%9"(&"**----(BJJ////(BJJ////
##FBIIau,EFhh(8
##H2hh(8
##H2%,U%:"(
##F2hh|2773
##H2hhy0
##H2%,T%9"(
##F1hhy0
##H2hh|2773
##H2    c                    [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9nSn[        XU5      u  pEUR	                  SS9nUR	                  SS9n[         R                  " / SQ5      n[         R                  " / SQ5      n	UR                  U5      nS	XhS	:H  '   UR                  U	5      nS	XyS	:H  '   [        R                  " XFS
S9  [        R                  " XWS
S9  g )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   	mergesortkind)r   r   r   r   r   r   r0   r0   r0   r   r   r      r4      r5      r6   	   
   )r   r   r   r   r   r   r   r   r   r   r   r   r0   r   r0   r   r0   r   r   r   r   F)check_dtyper   r   r   r   argsorttaker   r   
r    r"   r#   	max_grouplsrsexp_lsexp_rsexp_liexp_ris
             r)   test_cython_left_outer_join'TestIndexer.test_cython_left_outer_join0   s    xx9I.bgg>	 i8;/K0WXJ
 V$!|V$!|
##BEB
##BEBr,   c                    [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9nSn[        X!U5      u  pEUR	                  SS9nUR	                  SS9n[         R                  " / SQ5      n[         R                  " / SQ5      n	UR                  U5      nS	XhS	:H  '   UR                  U	5      nS	XyS	:H  '   [        R                  " XV5        [        R                  " XG5        g )
Nr.   r   r/   r   r1   r2   )r   r   r   r   r0   r   r   r0   r   r   r0   r   r4   r5   r6   r4   r5   r6   r   )r   r   r   r   r   r   r   r   r   r   r   r   r0   r0   r0   r   r   r   r4   r   r:   )
r    r"   r#   r>   r@   r?   rA   rB   rC   rD   s
             r)   test_cython_right_outer_join(TestIndexer.test_cython_right_outer_joinH   s    xx9I.bgg>	 i8;/K0 
0 STV$!|V$!|
##B/
##B/r,   c                    [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9nSn[        XU5      u  pEUR	                  SS9nUR	                  SS9n[         R                  " / SQ5      n[         R                  " / SQ5      n	UR                  U5      nS	XhS	:H  '   UR                  U	5      nS	XyS	:H  '   [        R                  " XF5        [        R                  " XW5        g )
Nr.   r   )r   r   r   r0   r   r   r   r0   r   r1   r2   )r   r   r   r   r   r   r0   r0   r0   r   r   r   r4   r4   r5   r5   r6   r6   )r   r   r   r   r   r   r   r   r   r   r   r   r0   r   r0   r   r0   r   r   )r   r   r   r   r;   r<   r   r   r=   s
             r)   test_cython_inner_join"TestIndexer.test_cython_inner_joinv   s    xx9I1A	D3;/K0PQPQV$!|V$!|
##B/
##B/r,    N)__name__
__module____qualname____firstlineno__pytestmarkparametrizer*   rE   rH   rK   __static_attributes__rM   r,   r)   r   r      s:    [[C33>C0,0\0r,   r   readonlyTFc                    [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9nU (       a  UR                  SS9  UR                  SS9  [        R
                  " X!5      n[         R                  " / SQ[         R                  S9n[        R                  " X45        g )Nr   r   r   r0   r   r   )r   r   r   r0   r0   F)write)r   r   r   r   r   )	r   r   r   setflagsr   left_join_indexer_uniquer   r   r   )rV   abr%   expecteds        r)   test_left_join_indexer_uniquer_      s{    
1A
1A	


	


--a3Fxxrww7H1r,   c                     [         R                  " / SQ[         R                  S9n [         R                  " SS/[         R                  S9nSn[        R                  " XUSS9u  p4[         R
                  " [        U 5      [         R                  S9n[         R                  " [        U 5      [         R                  S9* nSX`S:H  '   SX`S:H  '   [        R                  " X55        [        R                  " XF5        g )	N)dr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   F)sortr   )
r   r   r   r   r   r   lenonesr   r   )r"   r#   
max_groupslidxridxexp_lidxexp_ridxs          r)   test_left_outer_join_bugri      s    88e	
L ggOhDT HHaV277+EJ((juMJDyyT"''2HD	11HHQYHQY//r,   c                  D   [         R                  " / SQ[         R                  S9n [         R                  " / SQ[         R                  S9n[        R                  " X5      u  p#n[         R                  " SS/[         R                  S9n[
        R                  " X%5        [         R                  " SS/[         R                  S9n[         R                  " SS/[         R                  S9n[
        R                  " X65        [
        R                  " XG5        [         R                  " S/[         R                  S9n [         R                  " S/[         R                  S9n[        R                  " X5      u  p#n[
        R                  " U[         R                  " S/[         R                  S95        [
        R                  " U[         R                  " S	/[         R                  S95        [
        R                  " U[         R                  " S	/[         R                  S95        g )
NrX   r   r   r   r   r5   r7   r   r   r   r0   r   r   )	r   r   r   r   inner_join_indexerr   assert_almost_equalr   r   r\   r]   indexaresbres	index_expaexpbexps           r)   test_inner_join_indexerru     sU   
1A
1A2218E!Qrxx0I5,88QF"''*D88QF"''*D4&4&
!BHH%A
!BHH%A2218Erxx288'DEbhhs"''&BCbhhs"''&BCr,   c                  D   [         R                  " / SQ[         R                  S9n [         R                  " / SQ[         R                  S9n[        R                  " X5      u  p#n[         R                  " / SQ[         R                  S9n[
        R                  " X%5        [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9n[
        R                  " X65        [
        R                  " XG5        [         R                  " S/[         R                  S9n [         R                  " S/[         R                  S9n[        R                  " X5      u  p#n[
        R                  " U[         R                  " S/[         R                  S95        [
        R                  " U[         R                  " S/[         R                  S95        [
        R                  " U[         R                  " S/[         R                  S95        g )	NrX   r   rk   )r   r   r   r   r0   r   r5   r7   )r   r   r   r   r   r0   r   r   )r   r   r   r   r   r   r   r0   r   r   )	r   r   r   r   r   r   rm   r   r   rn   s           r)   r*   r*   ,  sL   
1A
1A2218E1BI5,88/rww?D88/rww?D4&4&
!BHH%A
!BHH%A2218Erxx288'DEbhhs"''&BCbhhs"''&BCr,   c                     [         R                  " / SQ[         R                  S9n [         R                  " / SQ[         R                  S9n[        R                  " X5      u  p#n[
        R                  " X 5        [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9n[
        R                  " X55        [
        R                  " XF5        [         R                  " S/[         R                  S9n [         R                  " S/[         R                  S9n[        R                  " X5      u  p#n[
        R                  " U[         R                  " S/[         R                  S95        [
        R                  " U[         R                  " S/[         R                  S95        [
        R                  " U[         R                  " S/[         R                  S95        g )NrX   r   rk   )r   r   r   r   r0   )r   r   r   r   r   r   r   )	r   r   r   r   left_join_indexerr   rm   r   r   )r\   r]   ro   rp   rq   rs   rt   s          r)   test_left_join_indexerry   C  s6   
1A
1A11!7E5$88O2773D88&bgg6D4&4&
!BHH%A
!BHH%A11!7Erxx288'DEbhhs"''&BCbhhs"''&BCr,   c                  ,   [         R                  " / SQ[         R                  S9n [         R                  " / SQ[         R                  S9n[        R                  " X5      u  p#n[         R                  " / SQ[         R                  S9n[
        R                  " X%5        [         R                  " / SQ[         R                  S9n[
        R                  " X65        [         R                  " / SQ[         R                  S9n[
        R                  " XG5        g Nr   r   r   r   r   r   r   r   r5   r7   )r   r   r   r   r5   r7   )r   r   r   r   r   r0   )r   r   r   r   r   r   )r   r   r   r   rx   r   rm   r   idxidx2resre   rf   exp_resrg   rh   s           r)   test_left_join_indexer2r   Y  s    
((<rxx
0C88O2884D//:OCthh):G3(xx*"'':H4*xx,BGG<H4*r,   c                  ,   [         R                  " / SQ[         R                  S9n [         R                  " / SQ[         R                  S9n[        R                  " X5      u  p#n[         R                  " / SQ[         R                  S9n[
        R                  " X%5        [         R                  " / SQ[         R                  S9n[
        R                  " X65        [         R                  " / SQ[         R                  S9n[
        R                  " XG5        g r{   )r   r   r   r   r   r   rm   r   r~   s           r)   test_outer_join_indexer2r   i  s    
((<rxx
0C88O2884D00;OCthh):G3(xx*"'':H4*xx,BGG<H4*r,   c                  ,   [         R                  " / SQ[         R                  S9n [         R                  " / SQ[         R                  S9n[        R                  " X5      u  p#n[         R                  " / SQ[         R                  S9n[
        R                  " X%5        [         R                  " / SQ[         R                  S9n[
        R                  " X65        [         R                  " / SQ[         R                  S9n[
        R                  " XG5        g )Nr|   r   r}   )r   r   r   r   )r   r   r   r   )r   r   r   r   rl   r   rm   r   r~   s           r)   test_inner_join_indexer2r   y  s    
((<rxx
0C88O2884D00;OCthh|2884G3(xxBGG4H4*xxBGG4H4*r,   )numpyr   rR   pandas._libsr   r   pandas._libs.joinr   r   pandas._testing_testingr   r   rS   rT   r_   ri   ru   r*   ry   r   r   r   rM   r,   r)   <module>r      sv      (
 }0 }0@ dE]3
2 4
2w0tD.D.D,+ + +r,   