
    MhL                         S SK r S SKrS SKrS SKJs  Jr  S SKr	S SKJ
r
JrJrJrJrJrJrJrJrJr  S SKJr  \R.                  S 5       r\R.                  S 5       r " S S5      rg)    N)
CategoricalCategoricalDtypeCategoricalIndex	DataFrameIndexIntervalSeries	Timedelta	Timestampoption_contextc                      [        S[        R                  " SSS90[        [	        S5      [        [	        S5      5      SS9S	9$ )
NA   int64dtypeaabbcacabBr   nameindexr   nparanger   listr        X/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexing/test_categorical.pydfr!      sC    1G,	
 N"24;"?c
	 r   c                      [        S[        R                  " SSS90[        [	        S5      [        [	        S5      5      SS9S	9$ )
Nr   r   r   r   r   caber   r   r   r   r   r   r    df2r$   $   sC    1G,	
 N"24<"@s
	 r   c                   \   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS r\R*                  R-                  SS\R.                  " S\R2                  " S5      S9/5      S 5       rS rS r\R*                  R-                  S/ SQ/ SQ/ SQ/ SQ/S \R<                   5       QS  \R>                   5       Q\ RB                  " / S!Q\"S"9P\#" S#S$5      \#" S$S%5      \#" S%S&5      /P\$" S'S#S#5      \$" S'S(S#5      \$" S'S)S#5      /P\%" S#S*5      \%" S(S*5      \%" S)S+5      /PS, \RL                   5       Q\'RP                  RS                  / S-Q5      RB                  P\'RT                  " S.S)S/9RB                  P\'RV                  " S0S)S19RB                  P5      S2 5       r,S3 r-S4r.g5)6TestCategoricalIndex0   c                    [        [        S5      5      nUR                  S   n[        [        S5      SS9R	                  U5      nUR
                  U:X  d   e[        S/ SQ0[        U5      S9n[        R                  " X55        UR                  5       nS	UR                  S'   [        [        S
5      SS9R	                  U5      nUR
                  U:X  d   e[        S/ SQ0[        U5      S9n[        R                  " X5        [        R                  " [        SS9   UR                  S     S S S 5        UR                  5       nUR                  5       nUR                  R	                  [        5      Ul        SUR                  S'   SUR                  S'   [        R                  " Xu5        g ! , (       d  f       N= f)Nr   aaaar   r   r   )r         r      r   )r.   r.            r.   z^'d'$matchd
   )r   r   locr	   astyper   r   r   tmassert_frame_equalcopypytestraisesKeyErrorr   object)selfr!   r   resultbidxexpectedbidx2r$   s           r    test_loc_scalar$TestCategoricalIndex.test_loc_scalar1   s`    e-d5k,33E:zzU"""c9-U4[A
f/WWYstH~C077>{{e###* ,	
 	b+ ]]884FF3K 5 ggi88:!..v6S
c, 54s   F//
F=c           
      V   SUR                   S'   UR                  5       nSUR                   S'   [        [        S5      SS9n[	        S/ S	Q0[        U5      S
9n[
        R                  " X$5        UR                  5       nSUR                   S'   [	        SSSSSS[        R                  /[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  S/S.[        U5      S
9n[
        R                  " XT5        g )Nr.   r)   r5   )r4   r   aabbcadr   r+   r   )r.   r.   r/   r0   r1   r.   g      $@r   )r4   Cr/   r0   r1   )r   rH   )	r6   r:   r   r   r   r8   r9   r   nan)r?   r!   df3bidx3	expected3df4s         r    ,test_loc_setitem_with_expansion_non_categoryATestCategoricalIndex.test_loc_setitem_with_expansion_non_categoryQ   s    s ggid9oC00 ,	
	 	c- ggi"aAr2662ffbffbffbffbffbffbI ,
	 	c-r   c                     [         R                  " [        SS9   UR                  S     S S S 5        g ! , (       d  f       g = f)Nz^1$r2   r,   r;   r<   r=   r6   )r?   r!   s     r    $test_loc_getitem_scalar_non_category9TestCategoricalIndex.test_loc_getitem_scalar_non_categorym   s'    ]]851FF1I 211	   3
Ac                    [        [        / SQ5      5      nUS S S2   n[        R                  " / SQ[        R                  S9n[
        R                  " UR                  5       U5        [        S[        R                  " S5      S-   R                  S5      05      n[        R                  " UR                  / S	QS
9US'   [        S[        SS5      /SS/SS9nUR                  S   n[
        R                   " Xe5        [        S[        R                  " SS5      R                  S5      0[        R                  " SS5      R                  S5      S9n[        R                  " UR                  / S	QS
9US'   UR                  SS n[
        R"                  " Xe5        [        S[        SS5      /SS/SS9nUR$                  S   n[
        R                   " Xe5        g )Nr,   r/   r0   r1   )r1   r0   r/   r,   r   valued   r,   r   )r      2   K   rY   )binsD   r   rZ   r5   r   r      r.   r   	      )r	   r   r   arrayr   r8   assert_numpy_array_equal	__array__r   r   r7   pdcutrX   r   ilocassert_series_equalr9   r6   )r?   catreverseexpr!   rB   r@   s          r    test_slicing!TestCategoricalIndex.test_slicingq   st   [./dd)hh|2884
##G$5$5$7="))C.1"4!<!<W!EFG&&(<=32x2/~BO
v0biiB'..w78))B#**73
 x~~4HIB
f/1hq"o.wn1M
v0r   c                 	   [        / SQ/ SQS9n[        / SQ5      n/ SQn[        XS.US9n[        SS	// SQS9n[        S
S/5      nSS/n[        XWS.US9n[        XSS9n	[        SS/SS/SS
S9n
SnUR                  SS2S S 24   n[
        R                  " X5        [        US   R                  [        5      (       d   eUR                  SS S 24   n[
        R                  " X5        [        US   [        5      (       d   eUR                  S S 2S4   n[
        R                  " X5        [        UR                  [        5      (       d   eUR                  S   nX:X  d   eUR                  S
S2S S 24   n[
        R                  " X5        [        US   R                  [        5      (       d   eUR                  S
S S 24   n[
        R                  " X5        [        US   [        5      (       d   eUR                  S S 2S4   n[
        R                  " X5        [        UR                  [        5      (       d   eUR                  S   nX:X  d   eUR                  S
UR                  S   4   nX:X  d   eUR                  S   nX:X  d   eUR                  S   nX:X  d   eUR                  S/   nXDS   S:H     n[
        R                  " UU5        XDS   S:H     n[
        R                  " UU5        UR                  S   nX:X  d   eUR                  S   n[
        R                  " X5        [        US   [        5      (       d   eUR                  [!        SS5         n[
        R                  " X5        [        US   R                  [        5      (       d   eUR                  SS/   n[
        R                  " X5        [        US   R                  [        5      (       d   eUR                  S S 2S4   n[
        R                  " X5        [        UR                  [        5      (       d   eUR                  S S 2[!        SS5      4   n[
        R                  " X5        [        US   R                  [        5      (       d   eUR                  S S 2SS/4   n[
        R                  " X5        [        US   R                  [        5      (       d   eg )N)r)   cbrq   rq   rq   rq   r)   rr   rq   
categorieshijklmn)r,   r/   r0   r1   r-   r      catsvaluesr   rr   rq   ry   rz   r0   r1   r   r`   r   r>   )r   r   r   r/   r   )r/   r   )ry   r   r,   )r   r   r   r	   ri   r8   r9   
isinstancer   r   rj   strr6   columnsiatatslice)r?   r   idxr   r!   cats2idx2values2exp_dfexp_colexp_rowexp_valres_dfres_rowres_colres_val	exp_fancy	res_fancys                     r    test_slicing_and_getting_ops1TestCategoricalIndex.test_slicing_and_getting_ops   s}    /O
 78&7sC S#J?Cc3Z a& E=TJ v6 #q&();8RUV  1a
f-&...0@AAAA ''!Q$-
w0'&/3//// ''!Q$-
w0'--)9:::: ''$-!!! C
#
f-&...0@AAAA &&a.
w0'&/3//// &&F#
w0'--)9:::: &&%!!! &&bjjm+,!!! &&,!!! %%$!!! GGQCL	&zS()	
i3(|q()	
i3 %%$!!! ''!*
w0'&/3////q!%
f-&...0@AAAA!Q
f-&...0@AAAA''!Q$-
w0'--)9::::E!QK(
f)&...0@AAAAQF#
f)&...0@AAAAr   c                    [        / SQ/ SQS9n[        / SQ5      n/ SQn[        XS.US9nUR                  SS	2S S 24   n[        [        S
S
// SQS9SS/S.SS/S9n[        R
                  " XV5        UR                  SS	2S S 24   R                  n[        SS/SS/[        S9n[        R                  " XV5        UR                  SS2S4   n[        [        / SQ/ SQS9/ SQSS9n[        R                  " XV5        UR                  SS2UR                  SS 4   n[        S[        / SQ/ SQS90/ SQS9n[        R
                  " XV5        g )N)r)   rr   rr   rr   rq   rq   rq   rs   rt   rv   )r,   r/   r/   r/   r0   r1   r-   r   r   r/   r1   rr   ry   rz   categoryr   r   r   r   rw   )r)   rr   rr   )rw   rx   ry   r`   r   r,   )r   r   r   ri   r8   r9   dtypesr	   r>   rj   r6   r   )r?   r   r   r   r!   r@   rB   s          r    test_slicing_doc_examples.TestCategoricalIndex.test_slicing_doc_examples  sR   /O
 78&7sC1a#S#J?Ka& *
 	f/1a'':w/&(1C6R
v0C(OD!

 	v0CAa01[_MN!
 	f/r   c                 r    UR                   SS/   nUR                  / SQ   n[        R                  " X#SS9  g )Nrq   r)   )r1   r   r,   r-   Tcheck_index_type)r6   ri   r8   r9   )r?   r!   r@   rB   s       r     test_loc_getitem_listlike_labels5TestCategoricalIndex.test_loc_getitem_listlike_labels)  s2    c
#77<(
fFr   c                     [         R                  " [        [        R                  " S5      S9   UR
                  / SQ     S S S 5        g ! , (       d  f       g = f)N['e'] not in indexr2   r)   rr   er;   r<   r=   reescaper6   r?   r$   s     r    )test_loc_getitem_listlike_unused_category>TestCategoricalIndex.test_loc_getitem_listlike_unused_category/  s5     ]]82995I+JKGGO$ LKK   A		
Ac                     [         R                  " [        SS9   UR                  S     S S S 5        g ! , (       d  f       g = f)Nz^'e'$r2   r   rQ   r   s     r    &test_loc_getitem_label_unused_category;TestCategoricalIndex.test_loc_getitem_label_unused_category5  s'    ]]884GGCL 544rT   c                     [         R                  " [        [        R                  " S5      S9   UR
                  SS/     S S S 5        g ! , (       d  f       g = f)Nz['d'] not in indexr2   r)   r4   r   r   s     r    test_loc_getitem_non_category2TestCategoricalIndex.test_loc_getitem_non_category:  s7    ]]82995I+JKGGS#J LKKr   c                     UR                  5       nSUR                  S'   UR                  / SQ   n[        [        S5      [        S5      SS9n[	        S/ S	Q0US
9n[
        R                  " X55        g )Nr.   r   r   aaabber#   r   )ru   r   r   )r   r,   r-   r/   r0   r.   r   )r:   r6   r   r   r   r8   r9   )r?   r$   r!   r@   	exp_indexrB   s         r    0test_loc_setitem_expansion_label_unused_categoryETestCategoricalIndex.test_loc_setitem_expansion_label_unused_category?  s_    XXZs($T(^VSVW	c#67yI
f/r   c                 $   [        / SQ5      n[        / SQ/ SQS.US9nUR                  SS/   n[        SS/UR                  S9n[        S	S
/SS/S.US9n[        R
                  " X5SS9  UR                  / SQ   n[        / SQUR                  S9n[        / SQ/ SQS.US9n[        R
                  " X5SS9  [        R                  " [        [        R                  " S5      S9   UR                  SS/     S S S 5        g ! , (       d  f       g = f)Nrs   r,   r/   r0   r1   r-   r   r   r   r   r)   rr   rt   r,   r/   r1   r-   Tr   r)   r)   rr   )r,   r,   r/   )r1   r1   r-   ['x'] not in indexr2   x)r   r   r6   ru   r8   r9   r;   r<   r=   r   r   )r?   r   r!   resr   rm   s         r    test_loc_listlike_dtypes-TestCategoricalIndex.test_loc_listlike_dtypesH  s     !1YY7uE ffc3Z $c3ZE<L<LM	q!fAq62)D
c> ff_%$_AQAQR	ii8	J
c>]]82995I+JKFFC: LKKs   &D
Dc                    [        / SQ5      n[        / SQ/ SQS.US9nUR                  SS/   n[        / SQ/ S	QS.[        / S
Q5      S9n[        R                  " X4SS9  UR                  / S
Q   n[        / SQ/ SQS.[        / SQ5      S9n[        R                  " X4SS9  [
        R                  " [        [        R                  " S5      S9   UR                  SS/     S S S 5        g ! , (       d  f       g = f)N)r)   rr   r)   r   r   r   r   r)   rr   r,   r0   r/   )r1   r   r-   r   Tr   r,   r0   r,   r0   r/   )r1   r   r1   r   r-   r)   r)   r)   r)   rr   r   r2   r   )
r   r   r6   r8   r9   r;   r<   r=   r   r   r?   r   r!   r   rm   s        r    8test_loc_listlike_dtypes_duplicated_categories_and_codesMTestCategoricalIndex.test_loc_listlike_dtypes_duplicated_categories_and_codes_  s     1YY7uE ffc3Z ),4D_4U
 	c> ff_%!8"#<=
 	c>]]82995I+JKFFC: LKKs   C++
C9c           	      (   [        / SQ[        S5      S9n[        / SQ/ SQS.US9nUR                  SS	/   n[        / S
Q/ SQS.[        / SQ[        S5      S9S9n[        R
                  " X4SS9  UR                  / SQ   n[        / SQ/ SQS.[        / SQ[        S5      S9S9n[        R
                  " X4SS9  [        R                  " [        [        R                  " S5      S9   UR                  SS/     S S S 5        g ! , (       d  f       g = f)Nr)   rr   r)   rq   abcdert   rV   r-   r   r~   rc   r   r   r)   rr   r   )r-   r~   r   r   Tr   r   )r-   r~   r-   r~   r   r   r   r2   r   )r   r   r   r6   r8   r9   r;   r<   r=   r   r   r   s        r    (test_loc_listlike_dtypes_unused_category=TestCategoricalIndex.test_loc_listlike_dtypes_unused_categoryv  s     !5$w-P\=UKffc3Z ),"?tG}M
 	c> ff_%!8"#<gW
 	c>]]82995I+JKFFC: LKKs   (D
Dc                    [        / SQ[        S5      S9n[        / SQ/ SQS.US9n[        R                  " [
        SS	9   UR                  S     S S S 5        [        R                  " [
        [        R                  " S
5      S	9   UR                  SS/     S S S 5        g ! , (       d  f       NV= f! , (       d  f       g = f)Nr   r   rt   rV   r   r   r   r   r2   r   r)   )	r   r   r   r;   r<   r=   r6   r   r   )r?   r   r!   s      r    9test_loc_getitem_listlike_unused_category_raises_keyerrorNTestCategoricalIndex.test_loc_getitem_listlike_unused_category_raises_keyerror  s     !5$w-P\=UK]]83/FF3K 0 ]]82995I+JKFFC: LK	 0/ LKs    B B1 
B.1
B?c                    [        [        R                  R                  S5      R	                  S5      [        S5      [        S5      S9nUR                  5       n[        UR                  5      Ul        [        UR                  5      Ul	        [        UR                  SS S 24   UR                  SS9n[        R                  " UR                  SS S 24   U5        [        UR                  S S 2S4   UR                  SS9n[        R                  " UR                  S S 2S4   U5        [        [        S	5      / S
QS9n[        UR                  SS/S S 24   UR                  US9n[        R                  " UR                  SS/S S 24   U5        [        [        S5      / SQS9n[        UR                  S S 2SS/4   UR                  US9n[        R                  " UR                  S S 2SS/4   U5        g )Nr/   r0   r0   ABCXYZr   r   r   r`   XABr   r   rH   rt   r   r   r   XY)r   YZr   )r   r   randomdefault_rngstandard_normalr   r:   r   r   r   r	   r6   r8   rj   r9   )r?   r!   cdfexpectr   exp_columnss         r    test_ix_categorical_index.TestCategoricalIndex.test_ix_categorical_index  s   II!!!$44V<u+K

 ggi$RXX.	&rzz2sAvckkD
swwsAv7q#vciicB
swwq#v7$T$ZOL	2663*a-0#++YW
cggsCj!m4f=&tDzoN266!c3Z-0		;W
cgga#sm4f=r   infer_stringFTpyarrow)marksc           
         [        SU5         [        [        R                  R	                  S5      R                  S5      [        S5      [        S5      S9nUR                  5       n[        UR                  5      Ul	        [        UR                  5      Ul
        [        [        S5      SS	/S
9n[        UR                  SS S 24   UR                  US9n[        R                  " UR                  SS S 24   U5        [        [        S5      SS/S
9n[        UR                  S S 2S4   UR                  US9n[        R                  " UR                  S S 2S4   U5        [        UR                  SS	/S S 24   UR                  [        [        S5      5      S9n[        R                  " UR                  SS	/S S 24   U5        [        UR                  S S 2SS/4   UR                  [        [        S5      5      S9n[        R                  " UR                  S S 2SS/4   U5        S S S 5        g ! , (       d  f       g = f)Nzfuture.infer_stringr/   r   ABAXYXr   AAr   r   rt   r   XXr   r   AABXXY)r   r   r   r   r   r   r   r:   r   r   r   r6   r8   r9   )r?   r   r!   r   r   r   r   s          r    $test_ix_categorical_index_non_unique9TestCategoricalIndex.test_ix_categorical_index_non_unique  s   
 1<@		%%a(88@5kUB
 '')C(2CI*2::6CK(dc
KIrvvc1f~s{{)TF!!#''#q&/6:*4:3*MKrvvaf~SYYTF!!#''!S&/6:Sz1}%&tE{3F
 !!#''3*a-"8&Aq3*}%ii(e5F
 !!#''!c3Z-"8&A= A@@s   HH22
I c                     Sn[         R                  " [        US9   UR                  SS   S S S 5        UR                  SS nUR                  / SQ   n[
        R                  " X45        g ! , (       d  f       NE= f)NzRcannot do slice indexing on CategoricalIndex with these indexers \[1\] of type intr2   r,   r-   rr   rq   )r/   r0   r1   )r;   r<   	TypeErrorr6   ri   r8   r9   )r?   r!   msgr@   rB   s        r    test_loc_slice#TestCategoricalIndex.test_loc_slice  sd    * 	 ]]9C0FF1QK 1 C779%
f/ 10s   A++
A9c                     [        SS/SS/SS//[        / SQ5      S9nUS	   nUR                  S
   S:X  d   eUR                  S
   S:X  d   eUR                  S   S:X  d   eUR                  S   S:X  d   eg )Nr,   r/   r0   r1   r-   r   r   r   r   r   )r   r,   )r   r   r6   r   )r?   r!   ss      r    &test_loc_and_at_with_categorical_index;TestCategoricalIndex.test_loc_and_at_with_categorical_index  s    VaVaV$,<_,M
 qEuuSzQttCyA~~vvf~"""uuV}!!!r   
idx_valuesr   )rW   g      ?g      @      @)g      g      g      c              #   P   #    U  H  n[         R                  " / S QUS9v   M     g7fr   r   Nr   rd   .0r   s     r    	<genexpr>TestCategoricalIndex.<genexpr>  s     T<S5bhhy.<S   $&c              #   P   #    U  H  n[         R                  " / S QUS9v   M     g7f)r   r   Nr  )r  dtyps     r    r  r    s     V@Ubhhd3@Ur  )r,   rr   r   r   r,   r1   r   rb   i  r/   r0   r4   r^   c              #   P   #    U  H  n[         R                  " / S QUS9v   M     g7fr  )rg   rd   r  s     r    r  r    s     Q<P5bhhy.<Pr  )r,   r1   r   rb   z
2019-01-01)periods1d)startr  c                 R   [        XS9n[        S/ SQ0US9n[        US   US   5      nUR                  US      n[	        S/S/US   S9n[
        R                  " Xg5        UR                  US S	    n[        SS
/US S	 S/S9n[
        R                  " Xg5        UR                  U   n[        SS
/US S	 S/S9n[
        R                  " Xg5        UR                  5       nSUR                  US   '   [        S/ SQ0US9n[
        R                  " Xg5        UR                  5       nSS/UR                  US S	 S4'   [        S/ SQ0US9n[
        R                  " Xg5        UR                  5       nSS/UR                  US4'   [        S/ SQ0US9n[
        R                  " Xg5        g )N)orderedr   )foobarbazr   r   r,   r  r`   r/   r  r   qux)r  r  r  qux2)r  r  r  )	r   r   r   r6   r	   r8   rj   r9   r:   )r?   r   r  cat_idxr!   slr@   rB   s           r    +test_loc_getitem_with_non_string_categories@TestCategoricalIndex.test_loc_getitem_with_non_string_categories  s   8 #:?237C:a=*Q-0 
1&5'#Z]C
v0 
2A'eU^72A;N
f/ eU^72A;N
f/ $)

:a=!c#89I
f/ +0&/

:bq>3&'c#9:'J
f/ $fo

2s7c#9:'J
f/r   c                    [        SS[        R                  /5      n[        [	        S5      US9nU[        R                     S:X  d   eUR
                  [        R                     S:X  d   e[        U5      nUR
                  [        R                  S4   S:X  d   eUR
                  [        R                     S   S:X  d   eg )Nr   r   r0   r   r/   r   )r   r   rI   r	   ranger6   r   )r?   ciserr!   s       r    !test_getitem_categorical_with_nan6TestCategoricalIndex.test_getitem_categorical_with_nan2  s    sC01U1XR(266{awwrvv!###s^vvbffai A%%%vvbff~a A%%%r   r   N)/__name__
__module____qualname____firstlineno__rD   rN   rR   rn   r   r   r   r   r   r   r   r   r   r   r   r   r;   markparametrizeparamtd
skip_if_nor   r   r   r8   ALL_INT_NUMPY_DTYPESFLOAT_NUMPY_DTYPESr   rd   r>   r   r   r
   ALL_INT_EA_DTYPESrg   IntervalIndexfrom_breaks
date_rangetimedelta_ranger  r  __static_attributes__r   r   r    r&   r&   0   s
   -@.812wBr$0LG%
 
0...
>2 [[Ty9Q RS B BD0" [[ 	
 UB<S<ST	
 W@U@UV	
 HH]&1	
 a^Xa^Xa^<	
 tQ"IdAq$99T1a;PQ	
 q#	!S 19Q3DE	
" RB<P<PQ#	
& ((6<<'	
( MM,288)	
* T15;;+	
4%054%0N&r   r&   )r   numpyr   r;   pandas.util._test_decoratorsutil_test_decoratorsr&  pandasrg   r   r   r   r   r   r   r	   r
   r   r   pandas._testing_testingr8   fixturer!   r$   r&   r   r   r    <module>r8     sg    	   ) )        M& M&r   