
    Owgzc                        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"                  j%                  dddg      ej"                  j%                  dg d      d	               Zej"                  j%                  d
e	ej(                  e
eg      d        Zej"                  j.                  ej"                  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"                  j%                  dg d      d        Z%d Z&d Z'd Z(ej"                  j%                  d e)d       e)d       g      d        Z*d Z+d  Z,d! Z-d" Z.d# Z/d$ Z0ej"                  j%                  dg d%      d&        Z1ej"                  j%                  d'ejd                  d(g      d)        Z3ej"                  j%                  d'ejd                  d*g      d+        Z4ej"                  j%                  d,d-gd-gfd-d-gd-gfd.d-gd.d-gfg      d/        Z5ej"                  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"                  j%                  d>d?d@g      ej"                  j%                  dAddBg      dC               Z;ej"                  j%                  d'dDdEg      dF        Z<ej"                  j%                  dGdHejd                  g      dI        Z=ej"                  j}                  dJ      dK        Z?dL Z@dM ZAej"                  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"                  j%                  d2 ej                  d2d3gd2d3gW      d2d3gg      ej"                  j%                  d3 ej                  d2d3gd3d2gdXY       ej                  d2d3gd3d2gW      g      dZ               ZDej"                  j%                  d'ejd                  d(g      d[        ZEd\ ZFy)]    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        y # 1 sw Y   y xY w)Nz!Input must be Index or array-likematchsort)pytestraises	TypeErrorgetattr)idxr   r   r   msgs        ]/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexes/multi/test_setops.pytest_set_ops_error_casesr      s?     .C	y	, .VT-. . .s	   <Aklassc                 \   | dd d   }| d d }|t         ur ||j                        }|j                  ||      }||j                         }n|}t	        j
                  ||       d}t        j                  t        |      5  |j                  g d|       d d d        y # 1 sw Y   y xY w)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"5I|$$&)X.
:C	y	, 19401 1 1   B""B+c                 \   | d d d   }| d d }|t         ur ||j                        }|j                  ||      }||j                         }n|}t	        j
                  ||       d}t        j                  t        |      5  |j                  g d|       d d d        y # 1 sw Y   y xY w)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	, *ID)* * *r1   c                    | dd  }| d d }| j                  ||      }||j                         }|j                  |      sJ t        j                  ||       t
        j                  t        t        fD cg c]  } ||j                         }}|D ]+  }| j                  ||      }t        j                  ||       - d}t        j                  t        |      5  | j                  g d|       d d d        y c c}w # 1 sw Y   y xY w)N   r   r$   r   r%   )r   r)   equalsr*   r+   nparrayr   listr(   r   r   r   )	r   r   r-   answerresultr   casesr   r   s	            r   test_difference_baser=   H   s    WF!WF^^F^.F|##%==   &&) 13&$/GHeU6==!HEH .40
ff-. ;C	y	, -yt,- - I- -s   6C=DDc                    | dd  }| d d }| ddg   }|j                  ||      }||j                         }t        j                  ||       t        j
                  t        t        fD cg c]  } ||j                         }}|D ]+  }|j                  ||      }t        j                  ||       - d}	t        j                  t        |	      5  |j                  g d|       d d d        y c c}w # 1 sw Y   y xY w)Nr&   r"   r   r   r$   r   r%   )r   r)   r*   r+   r7   r8   r   r9   r(   r   r   r   )
r   r   r,   r-   r:   r;   r   r<   r   r   s
             r   test_symmetric_differencer?   ^   s   GE"XF"a\F''T':F|##%&&) 13&$/GHeU6==!HEH .++Dt+<
ff-. ;C	y	, 9""94"89 9 I9 9s   *C1C66C?c                  $   t        j                  ddgddggddg      } | j                  |       }|j                  | j                  k(  sJ | j	                         j                  ddg      }| j                  |      }|j                  d d gk(  sJ y )NabABnames)r   from_productr   rF   copyrename)r   r;   idx2s      r   $test_multiindex_symmetric_differencerK   t   s    

!
!C:Sz":3*
MC%%c*F<<399$$$88:c3Z(D%%d+F<<D$<'''    c                 B    | j                   rJ | d d j                   sJ y )Nr   )emptyr   s    r   
test_emptyrP      s     yy=r7===rL   c                    | }|j                  | dd  |      }| d d j                  }|t        |      }t        j                  |d| j
                        }t        |t              sJ |j                  |      sJ |j
                  | j
                  k(  sJ t        j                  ||       | j                  | |      }| d d }|j                  |      sJ |j
                  | j
                  k(  sJ | dd  j                  | |      }| d d }|j                  |      sJ |j
                  | j
                  k(  sJ | d d j                  | |      }| d d }|j                  |      sJ |j
                  | j
                  k(  sJ | dd  }ddg|_        |j                  ||      }|j
                  dk(  sJ | j                  | j                  d      d   |      }t        |      dk(  sJ |j                  |j                  |      }|j                  |d d       sJ |j                  g |      }|j                  |      sJ |j
                  |j
                  k(  sJ |j                  d	g|      }t        j                  g d
      }|j
                  |_        |j
                  |j
                  k(  sJ d}t        j                  t        |      5  |j                  g d|       d d d        y # 1 sw Y   y xY w)Nr   r   )	sortorderrF   foobazNNr&   rT   one))barrX   )rU   two)rT   rZ   )quxrX   )r[   rZ   r$   r   )r&   r!   r'   r5   r#   )r   r(   sortedr   from_tuplesrF   
isinstancer6   r*   r+   	sortlevellenr   r   r   )r   r   r,   r;   valsr/   chunkletr   s           r   test_differencerc      s   Ec"#hT2Fs8??D|d|%%dasyyIHfj)))=="""<<399$$$&(+ ^^Cd^+F2AwH=="""<<399$$$ X  4 0F2AwH=="""<<399$$$ !W$/F2AwH=="""<<399$$$ 23xHU^HNhT2F<<<''' ^^CMM!,Q/d^;Fv;! ell6F==r### bt,F<<;;&,,&&& ~.T:F%%XH [[HN;;&,,&&&
:C	y	, 5t45 5 5s   K33K<c                      t        j                  ddgddgg      } | j                  g       }t        j                  ||        y )Nr&   r   rA   rB   r   rG   r   r*   r+   r   r;   s     r   test_difference_sort_specialrg      s=    

!
!Aq6C:"6
7C^^BF&#&rL   c                      t        j                  ddgddgg      } | j                  g d      }t        j                  ddgddgg      }t        j                  ||       y Nr&   r   rA   rB   Tr   re   )r   r;   r/   s      r   !test_difference_sort_special_truerj      s^    

!
!Aq6C:"6
7C^^BT^*F&&Ac
';<H&(+rL   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  | j                  |      }d d d        t	        j                  |        | j                  |d      }t	        j                  ||        y # 1 sw Y   IxY w)Nr&   2000r!   rA   rB   r'   r5   cdz0sort order is undefined for incomparable objectsr   Fr   )	r   rG   pd	Timestampr*   assert_produces_warningRuntimeWarningr   r+   )r   otherr   r;   s       r   !test_difference_sort_incomparablert      s    

!
!Ar||F';Q#?#s"L
MC##af)=q%AC:$NOE
<C		#	#N#	> '&'&#& ^^E^.F&#&' 's   <CCc                  J   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  | j                  |d       d d d        y # 1 sw Y   y xY w)Nr&   rl   r!   rA   rB   r'   r5   rm   rn   zH'values' is not ordered, please explicitly specify the categories order r   Tr   )r   rG   ro   rp   r   r   r   r   )r   rs   r   s      r   &test_difference_sort_incomparable_truerv      s    

!
!Ar||F';Q#?#s"L
MC##af)=q%AC:$NOE UC	y	, )u4() ) )s   <BB"c                 h   | d d d d d   }| dd  }|j                  ||      }|dv r3t        j                  |j                         | j                                nt        j                  ||        | j                  | |      }t        j                  ||        | j                  | d d |      }t        j                  ||        | j                  }| d d j                  |dd  |      }|3t        j                  |j                         | j                                y |j                  |       sJ y )Nr#   r"   r'   r   )NFr   r5   )r   r*   r+   r)   r(   r6   )r   r   piece1piece2	the_uniontuplesr;   s          r   
test_unionr|      s   !WTrT]FWFV$/I}
i335s7HI
i- 		#D	)I)S)		#bq'	-I)S)ZZF!W]]6!":D]1F|
f002COO4EF}}S!!!rL   c                    t        g d      }|j                  |       }d|v sJ d|v sJ |r6t        j                  t        d      5  | j                  |       d d d        y d}t        j                  t        |      5  | j                  |      }d d d        |j                        rJ y # 1 sw Y   y xY w# 1 sw Y   )xY w)N)rC   rD   CrW   rD   zCan only unionr   z'The values in the array are unorderable)	r   r   r   r   NotImplementedErrorr*   rq   rr   r6   )r   using_infer_stringrs   r;   r   result2s         r   test_union_with_regular_indexr   
  s    /"E[[FV###&==]].6FG 	IIe	 	 8''cB 	'ii&G	' ==))))	 		' 	's   B. B:.B7:Cc                    | d d d d d   }| dd  }|j                  ||      }|dv rt        j                  || dd        n't        j                  |j                         | dd        | j                  | |      }t        j                  ||        | d d j                  | dd  |      }| d d }|j	                  |      sJ | j
                  }| j                  |      }|j	                  |       sJ y )Nr#   r"   r'   r   )NTr!   r   )r   r*   r+   r)   r6   r(   )	r   r   rx   ry   the_intrN   r/   r{   r;   s	            r   test_intersectionr     s   !WTrT]FWF!!&t!4G|
gs1Qx0
g113S1X> s.G'3' G  QRt 4E2AwH<<!!!ZZFf%F==rL   c                    | j                         j                  d      }d g| j                  z  } t        | |      ||      } t        | |      | |      j	                  |      }t        j                  ||        t        | |      |d d |      } t        | |      | d d |      j	                  |      }t        j                  ||       y )Ncategoryr   r#   )to_flat_indexastypenlevelsr   rI   r*   r+   )r   r   r   rs   	res_namesr;   r/   s          r   test_setop_with_categoricalr   6  s     &&z2E$I!WS&!%d3F#wsF#Cd3::9EH&(+!WS&!%)$7F#wsF#CG$7>>yIH&(+rL   c                 d   t        t        d      d      }| j                  ||      }t        | j                  g g| j
                  z  d       }t        j                  ||d       | j                  t        j                  |      d d |      }t        | j                  g g| j
                  z  | j                        }t        j                  ||d       d	}t        j                  t        |
      5  | j                  t        j                  |      |       d d d        y # 1 sw Y   y xY w)Nr'   rT   )namer   levelscodesrF   T)exactr   r$   r   )r   ranger   r   r   r   r*   r+   r7   asarrayrF   r   r   r   )r   r   rs   r;   r/   r   s         r   test_intersection_non_objectr   F  s    %('Ee$/FB4#++3ETRH&($7 bjj/3$?FB4#++3ESYYWH&($7
:C	y	, 7E*67 7 7s   6'D&&D/c                      t        j                  ddgddgg      } t        j                  | j	                  | d      |        t        j                  | j	                  | d       |        y Nr&   r   rA   rB   Fr   )r   rG   r*   r+   r   rO   s    r   test_intersect_equal_sortr   X  s_    

!
!Aq6C:"6
7C#**3U*;SA#**3T*:C@rL   c                      t        j                  ddgddgg      } t        j                  ddgddgg      }| j                  | d      }t        j                  ||       y ri   )r   rG   r   r*   r+   )r   r/   r;   s      r   test_intersect_equal_sort_truer   _  sa    

!
!Aq6C:"6
7C&&Ac
';<Hc-F&(+rL   slice_c                 &   t        j                  ddgddgg      }||    }t        j                  |j	                  |      |       t        j                  |j	                  |      |       t        j                  |j	                  |d      |       y r   )r   rG   r*   r+   r   )r   r   rs   s      r   test_union_sort_other_emptyr   f  s}     
!
!Aq6C:"6
7C KE#))E*C0%++c*C0 #))E)6<rL   c                      t        j                  ddgddgg      } | d d }| j                  |d      }t        j                  ddgddgg      }t        j                  ||       y ri   )r   rG   r   r*   r+   )r   rs   r;   r/   s       r    test_union_sort_other_empty_sortr   t  si    

!
!Aq6C:"6
7CGEYYu4Y(F&&Ac
';<H&(+rL   c                  h   t        j                  dt        j                  d      gddgg      } t	        j
                  t              5  | j                  | d d       }d d d        t	        j                  |        | j                  | d d d      }t	        j                  ||        y # 1 sw Y   LxY w)Nr&   rl   rA   rB   Fr   )	r   rG   ro   rp   r*   rq   rr   r   r+   rf   s     r   "test_union_sort_other_incomparabler   |  s    

!
!Ar||F';#<sCj"I
JC 
	#	#N	3 $3r7#$&#& YYs2AwUY+F&#&$ $s   B((B1c                      t        j                  dt        j                  d      gddgg      } d}t	        j
                  t        |      5  | j                  | d d d       d d d        y # 1 sw Y   y xY w)	Nr&   rl   rA   rB   z<'<' not supported between instances of 'Timestamp' and 'int'r   Tr   )r   rG   ro   rp   r   r   r   r   )r   r   s     r   'test_union_sort_other_incomparable_sortr     sg    

!
!Ar||F';#<sCj"I
JC
HC	y	, &		#bq'	%& & &s   A,,A5c                      t        j                  ddgddgg      } | j                  d   }d}t        j                  t
        |      5  | j                  |       d d d        y # 1 sw Y   y xY w)NrA   rB   r&   r!   z<Can only union MultiIndex with MultiIndex or Index of tuplesr   )r   rG   r   r   r   r   r   )mir   r   s      r   "test_union_non_object_dtype_raisesr     s`    		 	 3*q!f!5	6B
))A,C
HC	*#	6 
  s   A##A,c                      t        j                  g g      } t        j                  ddgddggddg      }| j                  |      }t        j                  ddgddgg      }t        j                  ||       y )Nr&   r!   r'   r5   rA   rB   rE   r   from_arraysr   r*   r+   )r   mi2r;   r/   s       r   %test_union_empty_self_different_namesr     sq    				%B

 
 1a&1a&!1#s
DCXXc]F%%1v1v&67H&(+rL   c                     t        j                  ddgddggddg      } t        j                  d      }| j	                  |      }t        j                  | |d	
       |j	                  |       }t        j                  | |d	
       y )Nr&   r!   r'   r5   rA   rB   rE   r   F)check_names)r   r   ro   
RangeIndexr   r*   r+   )r   riresult_leftresult_rights       r   &test_union_multiindex_empty_rangeindexr     sq    			!Q!Q 0c
	CB	q	B((2,K"ku=88B<L"l>rL   )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         t        ||       |d	       y # 1 sw Y   xY w)
NrA   rB   r&   r!   rm   zThe 'sort' keyword only takesr   r   T)r   rG   r   r   
ValueErrorr   )r   idx1rJ   s      r   test_setops_sort_validationr     s     ""S#JA#78D""S#JA#78D	z)H	I ,fd+, GD&$T*	, ,s   BBvald   c                 (   t        j                  t        ddg|       ddggdd g      }t        j                  t        dd|g|       g dg      }|j                  |      }t        j                  t        dg|       dgg      }t	        j
                  ||       |j                  |j                  d            }t        j                  t        g |       t        g t        j                        gdd g      }t	        j
                  ||       y )	Nr&   r!   dtyperA   rE   r&   r&   r'   F)	ascending)	r   r   r   r   r*   r+   r)   r7   int64any_numeric_ea_dtyper   midxmidx2r;   r/   s         r   test_difference_keep_ea_dtypesr     s     !!	A2	3aV<S$KD ""	As#7	8)DE __U#F%%vqc9M'NQRPS&TUH&(+__T--->?F%%	.	/"((1KLDkH &(+rL   r#   c                 B   t        j                  t        ddg|       ddggdd g      }t        j                  t        dd|g|       g dg      }|j                  |      }t        j                  t        dd|g|       g dg      }t	        j
                  ||       y )Nr&   r!   r   rA   rE   r   r%   )r   r   r   r   r*   r+   r   s         r   *test_symmetric_difference_keeping_ea_dtyper     s     !!	A2	3aV<S$KD ""	As#7	8)DE &&u-F%%	As#7	8)DH &(+rL   )r{   
exp_tuplesval1test1val2test2c                     t        j                  | ddg      }t        j                  g dddg      }|j                  |      }t        j                  |ddg      }t        j                  ||       y )Nr,   r-   rE   )r   r   r   )r   r]   r   r*   r+   )r{   r   leftrightr;   r/   s         r   test_intersect_with_duplicatesr     so     !!&(0CDD""A!E u%F%%j(8KLH&(+rL   zdata, names, expectedr&   rA   rB   )r&   r!   rm   rn   r%   )rA   rB   rm   c                     t        j                  g ddg      }t        j                  | g|      }|j                  |      }||k(  sJ y )NrA   rB   rE   )r   r]   _maybe_match_names)datarF   r/   r   r   r;   s         r   test_maybe_match_namesr     sL    " 
		3*	5B

 
 $u
5C""3'FXrL   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      }| j                  |      }t        j                  ddgddggd dg      }t        j                  ||       y )	Nr&   r!   r'   r5   rm   rB   rE   rA   r   r   r   r*   r+   )mi1r   r;   r/   s       r   'test_intersection_equal_different_namesr     s    

 
 1a&1a&!1#s
DC

 
 1a&1a&!1#s
DCc"F%%1v1v&6tSkJH&(+rL   c                      t        j                  dgdggddg      } t        j                  dgdgg      }| j                  |      }t        j                  ||       y )Nr&   r'   rm   rB   rE   r   )r   r   r;   s      r   !test_intersection_different_namesr     sV    			!qc
3*	=B

 
 1#s
,C__S!F&#&rL   c                     t        j                  d| d| gg dg      }t        j                  d| dgg dg      }|j                  |      }t        j                  d| gddgg      }t        j                  ||       y )Nr'   r5   )r&   r!   r5   r!   r&   r!   r5   r&   r!   r   nulls_fixturer   r   r;   r/   s        r   3test_intersection_with_missing_values_on_both_sidesr   $  sz    

 
 1mQ"F!U
VC

 
 1mQ"7!C
DCc"F%%='9Aq6&BCH&(+rL   c                     t        j                  d| gg      }t        j                  d| dgg      }|j                  |      }t        j                  dd| gg      }t        j                  ||       y )Nr&   r'   r   r   s        r   ,test_union_with_missing_values_on_both_sidesr   -  sk    

 
 1m"4!5
6C

 
 1mQ"7!8
9CYYs^F%%1m'<&=>H&(+rL   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      }|j                  ||      }|@t        j                  t        j                  ddt        j
                  g|       g dg      }n|}t        j                  ||       y )	N      ?r   r!   r'   g      @)r!   r'   r5   r   )r!   r5   r'   )	r   r   ro   r8   r7   nanr   r*   r+   )r   r   r   r   r;   r/   s         r   test_union_nan_got_duplicatedr   6  s     
 
 "((C="FA!O
PC

 
 "((C+=U"KY!W
XCYYsY&F|))XXsC(6	B
 &(+rL   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      }|j                  |      }|dk(  r't        j                  t        g d|       g dg      }n&t        j                  t        ddg|       ddgg      }t	        j
                  ||       y )	Nr!   r   r&   rA   rE   r5   r   )r&   r!   r&   r   r   r   r   r*   r+   )r   r   arr1arr2r   r   r;   r/   s           r   test_union_keep_ea_dtyper   F  s     3("67D1a& 45D!!4!Q.dDD""D1a&>2EZZF
ax))I%9:IF
 ))QF"67!Q@
 &(+rL   dupe_valr'   c           	         t        j                  t        d| dg|      t        d| dg|      g      }t        j                  t        d| | g|      t        d| | g|      g      }|j                  |      }t        j                  t        dd| | g|      t        dd| | g|      g      }t	        j
                  ||       y )Nr&   r!   r   )r   r   r   r   r*   r+   )r   r   r   r   r;   r/   s         r   (test_union_with_duplicates_keep_ea_dtyper   Z  s     
 
 Ax#+?@Ax#+?@	
C 
 
 Ax*2FGAx*2FG	
C YYs^F%%Aq(H-5IJAq(H-5IJ	
H &(+rL   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                    | j                   st        | t        t        f      r+t	        j
                  dt        |       j                          | j                         j                  j                         }t        j                  |dgt        |      z  g      }t        j                  |d   g|z   dgt        |      dz   z  g      }|j                  |      }|j                         }t!        j"                  ||       t%        |j&                  d         rm|j)                  d      dk  j+                         rK|j-                  |j&                  d   j/                  t0        j2                        |j&                  d   g      }nXt5        |j&                  d         r@|j-                  |j&                  d   j/                  t6              |j&                  d   g      }|j                  |      }t!        j"                  ||       y )NzNo duplicates in an empty r&   r   l            )rN   r^   r   r   r   skiptype__name__uniquer(   tolistr   r   r`   r   r)   r*   r+   r
   r   get_level_valuesall
set_levelsr   r7   r   r	   float)indexrequestr(   r   r   r;   r/   s          r   test_union_duplicatesr   s  s    {{j8H(IJ0e1E1E0FGH\\^""))+F

 
 &1#F*;!<
=C

 
 6!9+"6s6{Q8O!P
QCYYs^F H&(+ 	"#**Q-0!!!$u,113 &&__Q&&rxx0(//!2DE
 


1	& &&__Q&&u-xq/AB
 YYs^F&(+rL   c                 V   t        g d|       }t        ddg|       }t        j                  |g dgdd g      }t        j                  |ddggdd g      }|j                  |      }t        j                  t        g d	|       g d
gdd g      }t	        j
                  ||       y )N)r5   r&   r&   r   r&   r5   )r!   r&   r&   rA   rE   r!   )r&   r&   r5   )r&   r&   r!   r   )any_real_numeric_dtyper   r   r   r   r;   r/   s          r   test_union_keep_dtype_precisionr     s    )#9:D1a& 67D!!4"3C;GD""D1a&>#tEEZZF%%
"8
99	EDkH &(+rL   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      }|j                  |      }t        j                  t        ddt        j                  t        j                  g|       g dg      }t        j                  ||       y )Nr5   r   r&   r!   rA   rE   )r&   r!   r&   r!   )r   ro   NAr   r   r   r*   r+   )r   r   r   r   r   r;   r/   s          r    test_union_keep_ea_dtype_with_nar    s    1bee*$89D1bee*$89D!!4!Q.dDD""D1a&>2EZZF%%	Aruubee$,@	A<PH &(+rL   z'levels1, levels2, codes1, codes2, names )rm   rn   rB   )r   r&   r!   )r&   r&   r&   )r   r   r   name1name2c                     t        | ||      }t        |||      }|j                  |      }|j                  dk(  sJ y )Nr   r!   )r   r   _lexsort_depth)levels1levels2codes1codes2rF   r   r   mi_ints           r   test_intersection_lexsort_depthr    sD     G6
?C
G6
?Cc"F  A%%%rL   )
categoriesT)r  orderedc                 j   ddg}t        | |d      }t        ||d      }t        j                  | |gddg      }t        j                  |      j	                  t        j                  |j                  ddg                  }t        j                  |      j	                  t        j                  |            }t        j                  |j                  ddg            j	                  t        j                  |            }t        j                  |j                  ddg            j	                  t        j                  |j                  ddg                  }	t        j                  ||       t        j                  ||       t        j                  ||       t        j                  |	|       y )N12)xyr  r  rE   )r   r   r   
from_framer   r)   r*   r+   )
rA   rB   rs   df1df2r/   res1res2res3res4s
             r   0test_intersection_with_non_lex_sorted_categoriesr    s`    #JE
!%(
)C
!%(
)C%%q%jc
CH  %22coosCj9:D   %22:3H3H3MND  #s!<=JJc"D   #s!<=JJcoosCj9:D $)$)$)$)rL   c                 <   t        j                  t        ddg|      ddggdd g      }t        j                  t        dd| g|      g dg      }|j                  |      }t        j                  t        dg|      dgg      }t	        j
                  ||       y )Nr&   r!   r   rA   rE   r   )r   r   r   r   r*   r+   )r   r   r   r   r;   r/   s         r    test_intersection_keep_ea_dtypesr    s     !!	A2	3aV<S$KD ""	As#7	8)DE u%F%%vqc9M'NQRPS&TUH&(+rL   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                  ||       y )Nr   stringr   )r   )
      )rV   rA   rB   r   g      $@r$  g      4@)	r   r   r   r]   r   r7   r   r*   assert_frame_equal)series1series2r;   r/   s       r   .test_union_with_na_when_constructing_dataframer(    s    $$TF(+VTF(-KL
G XZ%;%;<V%WXG)*F266266*S$Kbffd^TUH&(+rL   )Gnumpyr7   r   pandasro   r   r   r   r   r   r   pandas._testing_testingr*   pandas.api.typesr	   r
   markparametrizer   r8   r9   r0   arm_slowr3   r=   r?   rK   rP   rc   rg   rj   rt   rv   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  r(   rL   r   <module>r5     sl        #u.M. /. :rxx"FG1 H1& :rxx"FG* H *&-,9,(>5B',' )"4*&2 M
,
,7$A, E$Kq#:;
= <
=,'&,	? M++ -, .,( 
+, ,, 
	012
.	/2C1DE 12 12	

	,
	, 	tdD\"	utTl#	utTl#	#sdD\*	#sdD\*	OdD\2	#sc4[)	#sdC[)	#sc3Z(	$tSk*,',, 9i"89$/, 0 :, A', (,& aZ0, 1,0 RS, T,D,
, - q"g&rd#	"	"g	
&& R^^S#JC:6c
C SzsCj$GSzsCj9*	*4 -
, .
,,rL   