
    bMhtc                        d dl Zd dlZd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZmZ ej                            dddg          ej                            dg d          d	                         Zej                            d
e	ej        e
eg          d             Zej        j        ej                            d
e	ej        e
eg          d                         Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$ej                            dg d          d             Z%d Z&d Z'd Z(ej                            d e)d           e)d           g          d             Z*d Z+d  Z,d! Z-d" Z.d# Z/d$ Z0ej                            dg d%          d&             Z1ej                            d'ej2        d(g          d)             Z3ej                            d'ej2        d*g          d+             Z4ej                            d,d-gd-gfd-d-gd-gfd.d-gd.d-gfg          d/             Z5ej                            d0d1dddgfd1d2gddgfd1d3gddgfd4d5d6gddgfd4d3d2gddgfd7g d8ddgfd4d2d5gd2dgfd4d5d3gdd3gfd4d2d3gd2d3gfd4dd3gdd3gfg
          d9             Z6d: Z7d; Z8d< Z9d= Z:ej                            d>d?d@g          ej                            dAddBg          dC                         Z;ej                            d'dDdEg          dF             Z<ej                            dGdHej2        g          dI             Z=ej        >                    dJ          dK             Z?dL Z@dM ZAej                            dNg d8d dOggg dPdOggg dQg dRgg dQg dSgdTdUgfg          dV             ZBej                            d2 ejC        d2d3gd2d3gW          d2d3gg          ej                            d3 ejC        d2d3gd3d2gdXY           ejC        d2d3gd3d2gW          g          dZ                         ZDej                            d'ej2        d(g          d[             ZEd\ ZFdS )]    N)CategoricalIndex	DataFrameIndexIntervalIndex
MultiIndexSeries)is_float_dtypeis_unsigned_integer_dtypecaseg      ?xxxmethod)intersectionunion
differencesymmetric_differencec                     d}t          j        t          |          5   t          | |          ||           d d d            d S # 1 swxY w Y   d S )Nz!Input must be Index or array-likematchsort)pytestraises	TypeErrorgetattr)idxr   r   r   msgs        f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexes/multi/test_setops.pytest_set_ops_error_casesr      s     .C	y	,	,	, . .VT----. . . . . . . . . . . . . . . . . .s   AAAklassc                    | dd d         }| d d         }|t           ur ||j                  }|                    ||          }||                                }n|}t	          j        ||           d}t          j        t          |          5  |                    g d|           d d d            d S # 1 swxY w Y   d S )N      r   .other must be a MultiIndex or a list of tuplesr      r!      )	r   valuesr   sort_valuestmassert_index_equalr   r   r   )r   r   r   firstsecond	intersectexpectedr   s           r   test_intersection_baser0      s   2JE!WFJv}%%""6"55I|$$&&)X...
:C	y	,	,	, 1 199940001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1   B88B<?B<c                    | d d d         }| d d         }|t           ur ||j                  }|                    ||          }||                                }n|}t	          j        ||           d}t          j        t          |          5  |                    g d|           d d d            d S # 1 swxY w Y   d S )Nr"   r#   r   r$   r   r%   )	r   r(   r   r)   r*   r+   r   r   r   )r   r   r   r,   r-   r   r/   r   s           r   test_union_baser3   3   s    "IE!WFJv}%%KKTK**E|$$&&%***
:C	y	,	,	, * *IIID)))* * * * * * * * * * * * * * * * * *r1   c                 ,   | dd          | d d         }|                      |          }||                                }|                    |          sJ t          j        ||           fdt
          j        t          t          fD             }|D ].}|                      ||          }t          j        ||           /d}t          j
        t          |          5  |                      g d|           d d d            d S # 1 swxY w Y   d S )N   r   c                 0    g | ]} |j                   S  r(   .0r   r-   s     r   
<listcomp>z(test_difference_base.<locals>.<listcomp>T   %    HHHeUU6=!!HHH    r$   r   r%   )r   r)   equalsr*   r+   nparrayr   listr   r   r   )r   r   answerresultcasesr   r   r-   s          @r   test_difference_baserE   H   sj   WF!WF^^F^..F|##%%==     &&))) IHHH&$/GHHHE . .400
ff----
:C	y	,	,	, - -yyyt,,,- - - - - - - - - - - - - - - - - -s   "D		DDc                    | dd          }| d d         | ddg         }|                     |          }||                                }t          j        ||           fdt          j        t          t          fD             }|D ].}|                     ||          }t          j        ||           /d}t          j	        t          |          5  |                     g d|           d d d            d S # 1 swxY w Y   d S )	Nr&   r"   r   r   c                 0    g | ]} |j                   S r7   r8   r9   s     r   r;   z-test_symmetric_difference.<locals>.<listcomp>j   r<   r=   r$   r   r%   )r   r)   r*   r+   r?   r@   r   rA   r   r   r   )	r   r   r,   rB   rC   rD   r   r   r-   s	           @r   test_symmetric_differencerH   ^   sh   GE"XF"a\F''T'::F|##%%&&))) IHHH&$/GHHHE . .++Dt+<<
ff----
:C	y	,	,	, 9 9""9994"8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s   C<<D D c                  *   t          j        ddgddggddg          } |                     |           }|j        | j        k    sJ |                                                     ddg          }|                     |          }|j        d d gk    sJ d S )NabABnames)r   from_productr   rO   copyrename)r   rC   idx2s      r   $test_multiindex_symmetric_differencerT   t   s    

!C:Sz":3*
M
M
MC%%c**F<39$$$$88::c3Z((D%%d++F<D$<''''''r=   c                 :    | j         rJ | d d         j         sJ d S )Nr   )emptyr   s    r   
test_emptyrX      s,    yrr7=r=   c                 j   | }|                     | dd          |          }| d d         j        }|t          |          }t          j        |d| j                  }t          |t                    sJ |                    |          sJ |j        | j        k    sJ t          j	        ||           |                      | |          }| d d         }|                    |          sJ |j        | j        k    sJ | dd                               | |          }| d d         }|                    |          sJ |j        | j        k    sJ | d d                              | |          }| d d         }|                    |          sJ |j        | j        k    sJ | dd          }ddg|_        |                     ||          }|j        dk    sJ |                      | 
                    d          d         |          }t          |          dk    sJ |                     |j        |          }|                    |d d                   sJ |                     g |          }|                    |          sJ |j        |j        k    sJ |                     d	g|          }t          j        g d
          }|j        |_        |j        |j        k    sJ d}t          j        t          |          5  |                     g d|           d d d            d S # 1 swxY w Y   d S )Nr   r   )	sortorderrO   foobazNNr&   r\   one))barr`   )r]   two)r\   rb   )quxr`   )rc   rb   r$   r   )r&   r!   r'   r5   r#   )r   r(   sortedr   from_tuplesrO   
isinstancer>   r*   r+   	sortlevellenr   r   r   )r   r   r,   rC   valsr/   chunkletr   s           r   test_differencerk      s   Ec"##hT22Fss8?D|d||%dasyIIIHfj)))))=="""""<39$$$$&(+++ ^^Cd^++F2A2wH=="""""<39$$$$ X  4 00F2A2wH=="""""<39$$$$ !W$//F2A2wH=="""""<39$$$$ 233xHU^HNhT22F<<'''' ^^CMM!,,Q/d^;;Fv;;! el66F==rr##### bt,,F<<;&,&&&& ~.T::F%XXX H [HN;&,&&&&
:C	y	,	,	, 5 5t4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   L((L,/L,c                      t          j        ddgddgg          } |                     g           }t          j        ||            d S )Nr&   r   rJ   rK   r   rP   r   r*   r+   r   rC   s     r   test_difference_sort_specialro      sI    

!Aq6C:"6
7
7C^^BF&#&&&&&r=   c                      t          j        ddgddgg          } |                     g d          }t          j        ddgddgg          }t          j        ||           d S Nr&   r   rJ   rK   Tr   rm   )r   rC   r/   s      r   !test_difference_sort_special_truerr      sj    

!Aq6C:"6
7
7C^^BT^**F&Ac
';<<H&(+++++r=   c                     t          j        dt          j        d          dgddgg          } t          j        dt          j        d          dgdd	gg          }d
}t	          j        t          |          5  |                     |          }d d d            n# 1 swxY w Y   t	          j        ||            |                     |d          }t	          j        ||            d S )Nr&   2000r!   rJ   rK   r'   r5   cdz0sort order is undefined for incomparable objectsr   Fr   )	r   rP   pd	Timestampr*   assert_produces_warningRuntimeWarningr   r+   )r   otherr   rC   s       r   !test_difference_sort_incomparabler|      s   

!Ar|F';';Q#?#s"L
M
MC#af)=)=q%AC:$NOOE
<C		#N#	>	>	> ' '&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '&#&&& ^^E^..F&#&&&&&s   8BB!Bc                  T   t          j        dt          j        d          dgddgg          } t          j        dt          j        d          dgdd	gg          }d
}t	          j        t          |          5  |                     |d           d d d            d S # 1 swxY w Y   d S )Nr&   rt   r!   rJ   rK   r'   r5   ru   rv   zH'values' is not ordered, please explicitly specify the categories order r   Tr   )r   rP   rw   rx   r   r   r   r   )r   r{   r   s      r   &test_difference_sort_incomparable_truer~      s    

!Ar|F';';Q#?#s"L
M
MC#af)=)=q%AC:$NOOE UC	y	,	,	, ) )u4((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   8BB!$B!c                    | d d         d d d         }| dd          }|                     ||          }|dv r:t          j        |                                |                                            nt          j        ||            |                      | |          }t          j        ||            |                      | d d         |          }t          j        ||            | j        }| d d                              |dd          |          }|;t          j        |                                |                                            d S |                    |           sJ d S )Nr#   r"   r'   r   )NFr   r5   )r   r*   r+   r)   r(   r>   )r   r   piece1piece2	the_uniontuplesrC   s          r   
test_unionr      s]   !WTTrT]FWFV$//I}
i3355s7H7HIIII
i--- 		#D	))I)S)))		#bqb'	--I)S)))ZF!W]]6!"":D]11F|
f0022COO4E4EFFFFF}}S!!!!!!!r=   c                    t          g d          }|                    |           }d|v sJ d|v sJ |rKt          j        t          d          5  |                     |           d d d            d S # 1 swxY w Y   d S d}t          j        t          |          5  |                     |          }d d d            n# 1 swxY w Y   |                    |          rJ d S )N)rL   rM   Cr_   rM   zCan only unionr   z'The values in the array are unorderable)	r   r   r   r   NotImplementedErrorr*   ry   rz   r>   )r   using_infer_stringr{   rC   r   result2s         r   test_union_with_regular_indexr   
  sz   ///""E[[FV####&==== 	*].6FGGG 	 	IIe	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 8'cBBB 	' 	'ii&&G	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' ==)))))))s$   A33A7:A7B??CCc                 ^   | d d         d d d         }| dd          }|                     ||          }|dv rt          j        || dd                    n/t          j        |                                | dd                    |                      | |          }t          j        ||            | d d                              | dd          |          }| d d         }|                    |          sJ | j        }|                      |          }|                    |           sJ d S )Nr#   r"   r'   r   )NTr!   r   )r   r*   r+   r)   r>   r(   )	r   r   r   r   the_intrV   r/   r   rC   s	            r   test_intersectionr     sB   !WTTrT]FWF!!&t!44G|
gs1Q3x0000
g1133S1X>>> s..G'3''' G  QRRt 44E2A2wH<<!!!!!ZFf%%F==r=   c                    |                                                      d          }d g| j        z  } t          | |          ||          } t          | |          | |                              |          }t          j        ||            t          | |          |d d         |          } t          | |          | d d         |                              |          }t          j        ||           d S )Ncategoryr   r#   )to_flat_indexastypenlevelsr   rR   r*   r+   )r   r   r   r{   	res_namesrC   r/   s          r   test_setop_with_categoricalr   6  s    &&z22E$I!WS&!!%d333F#wsF##Cd333::9EEH&(+++!WS&!!%)$777F#wsF##CG$777>>yIIH&(+++++r=   c                 v   t          t          d          d          }|                     ||          }t          | j        g g| j        z  d           }t          j        ||d           |                     t          j	        |          d d         |          }t          | j        g g| j        z  | j
                  }t          j        ||d           d	}t          j        t          |
          5  |                     t          j	        |          |           d d d            d S # 1 swxY w Y   d S )Nr'   r\   )namer   levelscodesrO   T)exactr   r$   r   )r   ranger   r   r   r   r*   r+   r?   asarrayrO   r   r   r   )r   r   r{   rC   r/   r   s         r   test_intersection_non_objectr   F  sp   %(('''Ee$//FB4#+3ETRRRH&($7777 bj//3$??FB4#+3ESYWWWH&($7777
:C	y	,	,	, 7 7E**6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   7*D..D25D2c                      t          j        ddgddgg          } t          j        |                     | d          |            t          j        |                     | d           |            d S Nr&   r   rJ   rK   Fr   )r   rP   r*   r+   r   rW   s    r   test_intersect_equal_sortr   X  sq    

!Aq6C:"6
7
7C#**3U*;;SAAA#**3T*::C@@@@@r=   c                      t          j        ddgddgg          } t          j        ddgddgg          }|                     | d          }t          j        ||           d S rq   )r   rP   r   r*   r+   )r   r/   rC   s      r   test_intersect_equal_sort_truer   _  sm    

!Aq6C:"6
7
7C&Ac
';<<Hc--F&(+++++r=   slice_c                 >   t          j        ddgddgg          }||          }t          j        |                    |          |           t          j        |                    |          |           t          j        |                    |d          |           d S r   )r   rP   r*   r+   r   )r   r   r{   s      r   test_union_sort_other_emptyr   f  s     
!Aq6C:"6
7
7C KE#))E**C000%++c**C000 #))E)66<<<<<r=   c                      t          j        ddgddgg          } | d d         }|                     |d          }t          j        ddgddgg          }t          j        ||           d S rq   )r   rP   r   r*   r+   )r   r{   rC   r/   s       r    test_union_sort_other_empty_sortr   t  sw    

!Aq6C:"6
7
7CGEYYu4Y((F&Ac
';<<H&(+++++r=   c                     t          j        dt          j        d          gddgg          } t	          j        t                    5  |                     | d d                   }d d d            n# 1 swxY w Y   t	          j        ||            |                     | d d         d          }t	          j        ||            d S )Nr&   rt   rJ   rK   Fr   )	r   rP   rw   rx   r*   ry   rz   r   r+   rn   s     r   "test_union_sort_other_incomparabler   |  s    

!Ar|F';';#<sCj"I
J
JC 
	#N	3	3 $ $3rr7##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $&#&&& YYs2A2wUY++F&#&&&&&s   A00A47A4c                     t          j        dt          j        d          gddgg          } d}t	          j        t          |          5  |                     | d d         d           d d d            d S # 1 swxY w Y   d S )	Nr&   rt   rJ   rK   z<'<' not supported between instances of 'Timestamp' and 'int'r   Tr   )r   rP   rw   rx   r   r   r   r   )r   r   s     r   'test_union_sort_other_incomparable_sortr     s    

!Ar|F';';#<sCj"I
J
JC
HC	y	,	,	, & &		#bqb'	%%%& & & & & & & & & & & & & & & & & &s   
 A77A;>A;c                      t          j        ddgddgg          } | j        d         }d}t          j        t
          |          5  |                     |           d d d            d S # 1 swxY w Y   d S )NrJ   rK   r&   r!   z<Can only union MultiIndex with MultiIndex or Index of tuplesr   )r   rP   r   r   r   r   r   )mir   r   s      r   "test_union_non_object_dtype_raisesr     s    		 3*q!f!5	6	6B
)A,C
HC	*#	6	6	6  
                 s   A((A,/A,c                      t          j        g g          } t          j        ddgddggddg          }|                     |          }t          j        ddgddgg          }t          j        ||           d S )Nr&   r!   r'   r5   rJ   rK   rN   r   from_arraysr   r*   r+   )r   mi2rC   r/   s       r   %test_union_empty_self_different_namesr     s    			%	%B

 1a&1a&!1#s
D
D
DCXXc]]F%1v1v&677H&(+++++r=   c                     t          j        ddgddggddg          } t          j        d          }|                     |          }t          j        | |d	
           |                    |           }t          j        | |d	
           d S )Nr&   r!   r'   r5   rJ   rK   rN   r   F)check_names)r   r   rw   
RangeIndexr   r*   r+   )r   riresult_leftresult_rights       r   &test_union_multiindex_empty_rangeindexr     s    		!Q!Q 0c
	C	C	CB	q		B((2,,K"ku====88B<<L"l>>>>>>r=   )r   r   r   r   c                 @   t          j        ddgddgg          }t          j        ddgddgg          }t          j        t          d          5   t          ||           |d           d d d            n# 1 swxY w Y    t          ||           |d	           d S )
NrJ   rK   r&   r!   ru   zThe 'sort' keyword only takesr   r   T)r   rP   r   r   
ValueErrorr   )r   idx1rS   s      r   test_setops_sort_validationr     s     "S#JA#788D"S#JA#788D	z)H	I	I	I , ,fd++++, , , , , , , , , , , , , , , GD&$T******s   A88A<?A<vald   c                 V   t          j        t          ddg|           ddggdd g          }t          j        t          dd|g|           g dg          }|                    |          }t          j        t          dg|           dgg          }t	          j        ||           |                    |                    d                    }t          j        t          g |           t          g t          j                  gdd g          }t	          j        ||           d S )	Nr&   r!   dtyperJ   rN   r&   r&   r'   F)	ascending)	r   r   r   r   r*   r+   r)   r?   int64any_numeric_ea_dtyper   midxmidx2rC   r/   s         r   test_difference_keep_ea_dtypesr     sB    !	A2	3	3	3aV<S$K  D "	As#7	8	8	8)))D E __U##F%vqc9M'N'N'NQRPS&TUUH&(+++__T--->>??F%	.	/	/	/"(1K1K1KLDk  H &(+++++r=   r#   c                 \   t          j        t          ddg|           ddggdd g          }t          j        t          dd|g|           g dg          }|                    |          }t          j        t          dd|g|           g dg          }t	          j        ||           d S )Nr&   r!   r   rJ   rN   r   r%   )r   r   r   r   r*   r+   r   s         r   *test_symmetric_difference_keeping_ea_dtyper     s     !	A2	3	3	3aV<S$K  D "	As#7	8	8	8)))D E &&u--F%	As#7	8	8	8)))D H &(+++++r=   )r   
exp_tuplesval1test1val2test2c                     t          j        | ddg          }t          j        g dddg          }|                    |          }t          j        |ddg          }t          j        ||           d S )Nr,   r-   rN   )r   r   r   )r   re   r   r*   r+   )r   r   leftrightrC   r/   s         r   test_intersect_with_duplicatesr     s     !&(0CDDDD"AAA!  E u%%F%j(8KLLLH&(+++++r=   zdata, names, expectedr&   rJ   rK   )r&   r!   ru   rv   r%   )rJ   rK   ru   c                     t          j        g ddg          }t          j        | g|          }|                    |          }||k    sJ d S )NrJ   rK   rN   )r   re   _maybe_match_names)datarO   r/   r   r   rC   s         r   test_maybe_match_namesr     s^    " 
	3*	5	5	5B

 $u
5
5
5C""3''FXr=   c                     t          j        ddgddggddg          } t          j        ddgddggddg          }|                     |          }t          j        ddgddggd dg          }t          j        ||           d S )	Nr&   r!   r'   r5   ru   rK   rN   rJ   r   r   r   r*   r+   )mi1r   rC   r/   s       r   'test_intersection_equal_different_namesr     s    

 1a&1a&!1#s
D
D
DC

 1a&1a&!1#s
D
D
DCc""F%1v1v&6tSkJJJH&(+++++r=   c                      t          j        dgdggddg          } t          j        dgdgg          }|                     |          }t          j        ||           d S )Nr&   r'   ru   rK   rN   r   )r   r   rC   s      r   !test_intersection_different_namesr     se    		!qc
3*	=	=	=B

 1#s
,
,C__S!!F&#&&&&&r=   c                     t          j        d| d| gg dg          }t          j        d| dgg dg          }|                    |          }t          j        d| gddgg          }t          j        ||           d S )Nr'   r5   )r&   r!   r5   r!   r&   r!   r5   r&   r!   r   nulls_fixturer   r   rC   r/   s        r   3test_intersection_with_missing_values_on_both_sidesr   $  s    

 1mQ"F!U
V
VC

 1mQ"7!C
D
DCc""F%='9Aq6&BCCH&(+++++r=   c                     t          j        d| gg          }t          j        d| dgg          }|                    |          }t          j        dd| gg          }t          j        ||           d S )Nr&   r'   r   r   s        r   ,test_union_with_missing_values_on_both_sidesr   -  sv    

 1m"4!5
6
6C

 1mQ"7!8
9
9CYYs^^F%1m'<&=>>H&(+++++r=   r   float64Float64r   Fc                    t          j        t          j        dt          j        g|           ddgg          }t          j        t          j        dt          j        dg|           g dg          }|                    ||          }|:t          j        t          j        ddt          j        g|           g dg          }n|}t          j        ||           d S )	N      ?r   r!   r'   g      @)r!   r'   r5   r   )r!   r5   r'   )	r   r   rw   r@   r?   nanr   r*   r+   )r   r   r   r   rC   r/   s         r   test_union_nan_got_duplicatedr   6  s     
 "(C="F"F"FA!O
P
PC

 "(C+=U"K"K"KYYY!W
X
XCYYsY&&F|)XsC(666			B
 
 &(+++++r=   r5   r&   c                    t          |dg|           }t          ddg|           }t          j        |ddggdd g          }t          j        |ddgg          }|                    |          }|dk    r*t          j        t          g d|           g dg          }n)t          j        t          ddg|           ddgg          }t	          j        ||           d S )	Nr!   r   r&   rJ   rN   r5   r   )r&   r!   r&   r   r   r   r   r*   r+   )r   r   arr1arr2r   r   rC   r/   s           r   test_union_keep_ea_dtyper   F  s    3("6777D1a& 4555D!4!Q.dDDDD"D1a&>22EZZF
axx)III%9:::IIIF
 
 )QF"6777!Q@
 
 &(+++++r=   dupe_valr'   c           	         t          j        t          d| dg|          t          d| dg|          g          }t          j        t          d| | g|          t          d| | g|          g          }|                    |          }t          j        t          dd| | g|          t          dd| | g|          g          }t	          j        ||           d S )Nr&   r!   r   )r   r   r   r   r*   r+   )r   r   r   r   rC   r/   s         r   (test_union_with_duplicates_keep_ea_dtyper   Z  s    
 Ax#+?@@@Ax#+?@@@	
 C 
 Ax*2FGGGAx*2FGGG	
 C YYs^^F%Aq(H-5IJJJAq(H-5IJJJ	
 H &(+++++r=   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 X   | j         st          | t          t          f          r)t	          j        dt          |           j                    |                                 j	        
                                }t          j        |dgt          |          z  g          }t          j        |d         g|z   dgt          |          dz   z  g          }|                    |          }|                                }t!          j        ||           t%          |j        d                   rv|                    d          dk                                     rK|                    |j        d                             t0          j                  |j        d         g          }n_t5          |j        d                   rE|                    |j        d                             t6                    |j        d         g          }|                    |          }t!          j        ||           d S )NzNo duplicates in an empty r&   r   l            )rV   rf   r   r   r   skiptype__name__uniquer(   tolistr   r   rh   r   r)   r*   r+   r
   r   get_level_valuesall
set_levelsr   r?   r   r	   float)indexrequestr(   r   r   rC   r/   s          r   test_union_duplicatesr  s  s    { Ij8H(IJJ IGe1EGGHHH\\^^"))++F

 &1#F*;!<
=
=C

 6!9+"6s6{{Q8O!P
Q
QCYYs^^F  H&(+++ 	"#*Q-00
!!!$$u,1133
 &&_Q&&rx00(/!2DE
 
 

1	&	& 
 &&_Q&&u--xq/AB
 
 YYs^^F&(+++++r=   c                 p   t          g d|           }t          ddg|           }t          j        |g dgdd g          }t          j        |ddggdd g          }|                    |          }t          j        t          g d	|           g d
gdd g          }t	          j        ||           d S )N)r5   r&   r&   r   r&   r5   )r!   r&   r&   rJ   rN   r!   )r&   r&   r5   )r&   r&   r!   r   )any_real_numeric_dtyper   r   r   r   rC   r/   s          r   test_union_keep_dtype_precisionr    s    )))#9:::D1a& 6777D!4"3C;GGGD"D1a&>#tEEEEZZF%
"8
9
9
9999	EDk  H &(+++++r=   c                    t          dt          j        g|           }t          dt          j        g|           }t          j        |ddggdd g          }t          j        |ddgg          }|                    |          }t          j        t          ddt          j        t          j        g|           g dg          }t          j        ||           d S )Nr5   r   r&   r!   rJ   rN   )r&   r!   r&   r!   )r   rw   NAr   r   r   r*   r+   )r   r   r   r   r   rC   r/   s          r    test_union_keep_ea_dtype_with_nar    s    1be*$8999D1be*$8999D!4!Q.dDDDD"D1a&>22EZZF%	Arube$,@	A	A	A<<<P H &(+++++r=   z'levels1, levels2, codes1, codes2, names )ru   rv   rK   )r   r&   r!   )r&   r&   r&   )r   r   r   name1name2c                     t          | ||          }t          |||          }|                    |          }|j        dk    sJ d S )Nr   r!   )r   r   _lexsort_depth)levels1levels2codes1codes2rO   r   r   mi_ints           r   test_intersection_lexsort_depthr    sY     G6
?
?
?C
G6
?
?
?Cc""F A%%%%%%r=   )
categoriesT)r  orderedc                    ddg}t          | |d          }t          ||d          }t          j        | |gddg          }t          j        |                              t          j        |                    ddg                              }t          j        |                              t          j        |                    }t          j        |                    ddg                                        t          j        |                    }t          j        |                    ddg                                        t          j        |                    ddg                              }	t          j        ||           t          j        ||           t          j        ||           t          j        |	|           d S )N12)xyr  r  rN   )r   r   r   
from_framer   r)   r*   r+   )
rJ   rK   r{   df1df2r/   res1res2res3res4s
             r   0test_intersection_with_non_lex_sorted_categoriesr%    s    #JE
!%((
)
)C
!%((
)
)C%q%jc
CCCH %%22coosCj99:: D  %%22:3H3M3MNND #s!<!<==JJc"" D  #s!<!<==JJcoosCj99:: D $)))$)))$)))$)))))r=   c                 V   t          j        t          ddg|          ddggdd g          }t          j        t          dd| g|          g dg          }|                    |          }t          j        t          dg|          dgg          }t	          j        ||           d S )Nr&   r!   r   rJ   rN   r   )r   r   r   r   r*   r+   )r   r   r   r   rC   r/   s         r    test_intersection_keep_ea_dtypesr'    s     !	A2	3	3	3aV<S$K  D "	As#7	8	8	8)))D E u%%F%vqc9M'N'N'NQRPS&TUUH&(+++++r=   c            
         t          dt          j        t          d gd          t          d gd          g                    } t          dt          j        d                    }t	          | |g          }t	          t
          j        t
          j        fddgd	t
          j        d
gi          }t          j        ||           d S )Nr   strr   )r  )
      )r^   rJ   rK   r   g      $@r,  g      4@)	r   r   r   re   r   r?   r   r*   assert_frame_equal)series1series2rC   r/   s       r   .test_union_with_na_when_constructing_dataframer0    s    $TF%(((&$u*E*E*EF
 
  G XZ%;<V%W%WXXXG)**F2626*S$Kbfd^TUUH&(+++++r=   )Gnumpyr?   r   pandasrw   r   r   r   r   r   r   pandas._testing_testingr*   pandas.api.typesr	   r
   markparametrizer   r@   rA   r0   arm_slowr3   rE   rH   rT   rX   rk   ro   rr   r|   r~   r   r   r   r   r   r   r   slicer   r   r   r   r   r   r   r   r
  r   r   r   r   r   r   r   r   r   r   r   filterwarningsr  r  r  r  Categoricalr%  r'  r0  r7   r=   r   <module>r<     s                                        #u..MMM . .  /.. :rx"FGG1 1 HG1& :rx"FGG* * HG *&- - -,9 9 9,( ( (  >5 >5 >5B' ' ', , ,' ' ' ) ) )" " "4* * *&  2 MMM 
, 
, 
,7 7 7$A A A, , , EE$KKq#:;;
= 
= <;
=, , ,' ' '& & &  , , ,	? 	? 	? MMM + + + --, , .-,( 
++, , ,+, 
	012
.	/2C1DE 12 12	

 
	, 	,
 
	, 	tdD\"	utTl#	utTl#	#sdD\*	#sdD\*	OOOdD\2	#sc4[)	#sdC[)	#sc3Z(	$tSk*   , , ,' ' ', , ,, , , 9i"899$//, , 0/ :9, A'', , (',& aZ00, , 10,0 RSS, , TS,D, , ,
, 
, 
, - __q"g&__rd#YY			"YY			"g	
 & & & R^S#JC:666c
C  SzsCj$GGGSzsCj999 * * 	 *4 --
, 
, .-
,, , , , ,r=   