
    d29                        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
mZmZmZmZmZmZmZmZ d dlmZ d dlmZ  G d d          Z G d d          Z G d d	          Z G d
 d          Z G d d          Z G d d          ZdS )    N)CategoricalCategoricalDtypeCategoricalIndex	DataFrame
DateOffsetDatetimeIndexIndex
MultiIndexSeries	Timestampconcat
date_rangeget_dummiesperiod_range)SparseArrayc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestGetitemc                     t          g dddggddgddgg          }t          dt          d          |	          }t          j        t
          d
          5  |d
          d d d            d S # 1 swxY w Y   d S )N)a_lotonlyone
notevenonei      r   )levelscodes   )indexcolumnsr   match)r
   r   rangepytestraisesKeyError)selfmidfs      d/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/frame/indexing/test_getitem.py test_getitem_unused_level_raisesz,TestGetitem.test_getitem_unused_level_raises   s    666r
Cq6Aq6"
 
 
 rq2666]8<888 	 	|	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	A..A25A2c                 `   t          dd          }t          t          j                            dd          |          }||d                  }t          j        ||j        d d df                    t          |           |d         }t          j        ||j        d d df                    d S )Nz1/1/2000   )periods
   r   r   )	r   r   nprandomrandntmassert_series_equalilocrepr)r&   rngr(   tss       r)   test_getitem_periodindexz$TestGetitem.test_getitem_periodindex&   s    :q111ryr1--s;;;AZ
r27111a4=111 	R
^
r27111a4=11111    c                    t          t          d          t          d          g          }t          ddgddggdddg|          }t          |          }|t	          |j                           }t          j        ||           d S )Nz
12-31-1999z
12-31-2000r   r   bool)dtyper   r   )r   r   r   r   listr   r3   assert_frame_equal)r&   catsexpecteddummiesresults        r)   1test_getitem_list_of_labels_categoricalindex_colsz=TestGetitem.test_getitem_list_of_labels_categoricalindex_cols3   s    Il33Y|5L5LMNNq!fq!f-VAq6SWXXXd##go../
fh/////r:   c                 >   t          ddg          }t          d|i          }t          |d          }|d         }t          j        ||           |j        d d df         }t          j        ||           |j        d d df         }t          j        ||           d S )Nr   r   Aname)r   r   r   r3   r4   r5   loc)r&   datar(   rA   rC   s        r)   0test_getitem_sparse_column_return_type_and_dtypez<TestGetitem.test_getitem_sparse_column_return_type_and_dtype<   s    Aq6""T{##$S)))C
vx000 A
vx0003
vx00000r:   c                     t          ddggt          ddgd                    }|j        }|d         }t          j        ||           d S )Nr      rF   Bstringr=   r/   )r   r	   rF   r3   r4   r&   r(   rC   rA   s       r)   test_getitem_string_columnsz'TestGetitem.test_getitem_string_columnsK   sT    AxSz)J)J)JKKKc7
vx00000r:   N)__name__
__module____qualname__r*   r9   rD   rK   rR    r:   r)   r   r      s_        	 	 	2 2 20 0 01 1 11 1 1 1 1r:   r   c            	           e Zd Zd Zd Zd Zej                            de	e
eed d gg d          ej                            d	d
dg          d                         Zd Zd Zd ZdS )TestGetitemListLikec                     t          dgdgdgd          }g d|_        t          j        t          d          5  |g d          d d d            d S # 1 swxY w Y   d S )Ng      ?g       @      @)xyz)r[   r[   r]   z\['y'\] not in indexr    )r   r   r#   r$   r%   r&   r(   s     r)   test_getitem_list_missing_keyz1TestGetitemListLike.test_getitem_list_missing_keyT   s     cU#cU;;<<$__
 ]8+BCCC 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   AAAc                    t          t          j                            dd          t	          d                    }d|j        _        |ddg         }|j        j        dk    sJ |j        d d dd f         }t          j	        ||           d S )N   AABCr/   foorN   CrM   )
r   r0   r1   r2   r>   r   rH   r5   r3   r?   rQ   s       r)   test_getitem_list_duplicatesz0TestGetitemListLike.test_getitem_list_duplicates^   s    ryq!,,d6llCCC
S#J~"e++++7111abb5>
fh/////r:   c                     t          g dg dgg d          }d}t          j        t          t	          j        |                    5  |dg          d d d            d S # 1 swxY w Y   d S )Nr   rM   r   ra   r,      ark   br/   z?"None of [Index(['baf'], dtype='object')] are in the [columns]"r    baf)r   r#   r$   r%   reescape)r&   r(   msgs      r)   test_getitem_dupe_colsz*TestGetitemListLike.test_getitem_dupe_colsi   s    			999-GGGQ]829S>>::: 	 	wKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	
A  A$'A$idx_typec           
      p    t          t          | t          t          |                                         S N)dictzipr"   lenkeyss    r)   <lambda>zTestGetitemListLike.<lambda>v   s&    c$c$ii(8(899:: r:   c           
          t          t          | t          t          |                                                                         S rt   )ru   rv   r"   rw   ry   rx   s    r)   rz   zTestGetitemListLike.<lambda>w   s2    c$c$ii(8(899::??AA r:   )r>   iterr	   setru   	dict_keys)idsr   r   rM   c                    |dk    r|d}}nBt          t          j                            dd          t	          g dd                    }d	}|j        d         |j        d
         g} ||          }t           ||                    }t          |t          t          f          r=t          j        t          d          5  ||          d d d            n# 1 swxY w Y   d S ||         }	|j        d d |f         }
|j        j        |
j        _        t          j        |	|
            |||gz             }t          j        t"          d          5  ||          d d d            d S # 1 swxY w Y   d S )Nr   food   r   ))rc   bar)bazqux)peekaboo)sthsth2rG   r/   )goodr   r   as an indexer is not supportedr    znot in index)r   r0   r1   r2   r	   r   r>   
isinstancer}   ru   r#   r$   	TypeErrorrI   namesr3   r?   r%   )r&   rr   r   float_frameframemissingry   idx	idx_checkrC   rA   s              r)   test_getitem_listlikez)TestGetitemListLike.test_getitem_listlikeo   s	     Q;;(&7EE 	1%%FFF(    E 'Ga %-"23htnn$((	cC;'' 	 y0PQQQ  c

               F3ZF9QQQ	\*!&!4
fh///htwi'((]8>::: 	 	#JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   	CCC	E((E,/E,c                     t          g dg dd          }d dD             }|j        |         }t          ddgdd	gdd
dg          }t          j        ||           d S )Nrg   rh   rk   rl   c              3      K   | ]}|V  d S rt   rV   .0r[   s     r)   	<genexpr>zBTestGetitemListLike.test_getitem_iloc_generator.<locals>.<genexpr>   "      %%1%%%%%%r:   r   rM   rM   r   r,   ri   r   r   )r   r5   r3   r?   r&   r(   indexerrC   rA   s        r)   test_getitem_iloc_generatorz/TestGetitemListLike.test_getitem_iloc_generator   s}    YYYYYY7788%%f%%%!Aq6A771vFFF
fh/////r:   c                     t          g dg dd          }d dD             }|j        |df         }t          ddgd	dd
g          }t          j        ||           d S )Nrg   rh   r   c              3      K   | ]}|V  d S rt   rV   r   s     r)   r   zRTestGetitemListLike.test_getitem_iloc_two_dimensional_generator.<locals>.<genexpr>   r   r:   r   r   r,   ri   rl   rM   )rH   r   )r   r5   r   r3   r4   r   s        r)   +test_getitem_iloc_two_dimensional_generatorz?TestGetitemListLike.test_getitem_iloc_two_dimensional_generator   sw    YYYYYY7788%%f%%%!$1a&s1a&999
vx00000r:   c                 d   t          t          t          d                    t          ddt	          d                              }|j        dd         }t          g d	t          g d
dt	          d                              }t          j        ||           t          t          t          d                    t          ddt	          dd                              }|j        dd         }t          g d	t          g ddt	          dd                              }t          j        ||           t          t          t          d                    t          ddt	          d                              }|j        dd         }t          j        ||           d S )Nr.   z
01-01-2022r   )days)r-   freqr   
2022-01-01
2022-01-03)r   r   rM   )r   z
2022-01-02r   zdatetime64[ns])r=   r   rM   )r   hours)z2022-01-01 00:00:00z2022-01-02 02:00:00z2022-01-03 04:00:00r   )minutes)	r   r>   r"   r   r   rI   r   r3   r?   rQ   s       r)   !test_getitem_iloc_dateoffset_daysz5TestGetitemListLike.test_getitem_iloc_dateoffset_days   s   rOO\2JA<N<N<NOOO
 
 
 \12II:::&Q'''  
 
 
 	fh///rOObzq/J/J/J  
 
 
 \12IIUUU&Qa000  
 
 
 	fh///rOO\2Jq<Q<Q<QRRR
 
 
 \12
fb)))))r:   N)rS   rT   rU   r_   re   rq   r#   markparametrizer>   r|   r	   r}   r   r   r   r   rV   r:   r)   rX   rX   S   s             	0 	0 	0   [::AA	
 BAA    [X1v..# # /. #J0 0 01 1 1'* '* '* '* '*r:   rX   c                       e Zd Zd Zd ZdS )TestGetitemCallablec                 ^   |d          }|j         d d df         }t          j        ||           |d          }|j         d d ddgf         }t          j        ||j         d d ddgf                    |d d         }|d          }|j        ddgd d f         }t          j        ||           d S )	Nc                     dS )NrF   rV   r[   s    r)   rz   z;TestGetitemCallable.test_getitem_callable.<locals>.<lambda>   s    s r:   rF   c                 
    ddgS )NrF   rN   rV   r   s    r)   rz   z;TestGetitemCallable.test_getitem_callable.<locals>.<lambda>   s
    Sz r:   rN   r   c                 
    g dS )N)TFTrV   r   s    r)   rz   z;TestGetitemCallable.test_getitem_callable.<locals>.<lambda>   s    111 r:   r   rM   )rI   r3   r4   r?   r5   )r&   r   rC   rA   r(   s        r)   test_getitem_callablez)TestGetitemCallable.test_getitem_callable   s    ]]+?111c6*
vx000112?111sCj=1
fkoaaa#sm&DEEE!_112#QFAAAI.
fh/////r:   c                     t          ddggddgg          }t          dgdgg          }|d         }t          j        ||           |j        d d df         }t          j        ||           d S )Nr   rM   rk   rl   r/   )r   r3   r?   rI   )r&   r(   rA   rC   s       r)   %test_loc_multiindex_columns_one_levelz9TestGetitemCallable.test_loc_multiindex_columns_one_level   s    Ax3*666aSC5'222C
fh///3
fh/////r:   N)rS   rT   rU   r   r   rV   r:   r)   r   r      s2        0 0 0	0 	0 	0 	0 	0r:   r   c                   B   e Zd Zd Zej                            dddgddggddgd	d
ggej        dgej        dgej        dgddggfddgddggddgd	d
ggej        dgej        dgdd	gdd
ggff          d             Z	ej
        d             Zd Zd Zd Zd Zd Zd ZdS )TestGetitemBooleanMaskc           
         t          dt          j        dd          it          g dt	          g dd          d	
                    }t          dt          j        dd          it          g dt	          g dd          d	
                    }||j        dk             }|j        g          }t          j        ||           ||j        dk             }|j        g          }t          j        ||           ||j        dk             }|j        g d         }t          j        ||           ||j        dk             }|j        g d         }t          j        ||           ||j        dk              }|j        dg         }t          j        ||           ||j        dk             }|j        g          }t          j        ||           d}t          j
        t          |          5  ||j        dk               d d d            n# 1 swxY w Y   t          j
        t          |          5  ||j        dk              d d d            d S # 1 swxY w Y   d S )NrF   ri   int64rP   )r   r   rM   r   r   rM   )r   rM   r   T)orderedrN   )r=   rH   r   Frk   r   )r   r   r   rM   ra   z7Unordered Categoricals can only compare equality or notr    )r   r0   aranger   r   r   r5   r3   r?   r#   r$   r   )r&   df3df4rC   rA   rp   s         r)   (test_getitem_bool_mask_categorical_indexz?TestGetitemBooleanMask.test_getitem_bool_mask_categorical_index   s   RYq000 #"""&yyy$???  		
 	
 	
 RYq000 #"""&yyy%@@@  		
 	
 	
 SY#%&8B<
fh///SY#%&8B<
fh///SY!^$8III&
fh///SY!^$8III&
fh/// SY]#8QC=
fh///SY]#8B<
fh/// H]9C000 	 		A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 		A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   )HHH-IIIzdata1,data2,expected_datar   rM   r   ra   g      ?ri      r   rZ   g      @g      @g      @g       @r,   c                 p   t          t          j        |                    }t          t          j        |                    }t          ||gd          }||dk             }d t	          |          D             }t          |                              ddd          }	t          j        ||	           d S )Nr   )axisrM   c                 >    i | ]\  }}|t          j        |          S rV   )r0   array)r   icols      r)   
<dictcomp>z`TestGetitemBooleanMask.test_getitem_bool_mask_duplicate_columns_mixed_dtypes.<locals>.<dictcomp>U  s&    JJJvq#!RXc]]JJJr:   r   )rM   r   r/   )r   r0   r   r   	enumeraterenamer3   r?   )
r&   data1data2expected_datadf1df2r(   rC   exdictrA   s
             r)   5test_getitem_bool_mask_duplicate_columns_mixed_dtypeszLTestGetitemBooleanMask.test_getitem_bool_mask_duplicate_columns_mixed_dtypes8  s    . ((((S#JQ'''BFJJ=1I1IJJJV$$++aLL+AA
fh/////r:   c                 ~    g d}t          t          j        d                              dd          |d          }|S )N)rF   rF   rd   D   r   ra   float64r   r=   )r   r0   r   reshape)r&   dupsr(   s      r)   df_dup_colsz"TestGetitemBooleanMask.df_dup_colsY  s>    ###ry}},,Q22D	RRR	r:   c                     |}d}t          j        t          |          5  ||j        dk              d d d            d S # 1 swxY w Y   d S )Nz/cannot reindex on an axis with duplicate labelsr    ri   )r#   r$   
ValueErrorrF   )r&   r   r(   rp   s       r)   ;test_getitem_boolean_frame_unaligned_with_duplicate_columnszRTestGetitemBooleanMask.test_getitem_boolean_frame_unaligned_with_duplicate_columns_  s     ?]:S111 	 	rtaxLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ?AAc                 0   t          t          j        d                              dd          g dd          }||j        dk             }|j        |_        |}||j        dk             }t          j        ||           |j         t          |           d S Nr   r   ra   )rF   rN   rd   r   r   r   ri   )
r   r0   r   r   rd   r   r3   r?   dtypesstrr&   r   r(   rA   rC   s        r)   2test_getitem_boolean_series_with_duplicate_columnszITestGetitemBooleanMask.test_getitem_boolean_series_with_duplicate_columnsh  s     IbMM!!!Q''1E1E1EY
 
 
 bdQh<&.BD1H
fh///Fr:   c                    t          t          j        d                              dd          g dd          }||dk             }|j        |_        |}||dk             }t          j        ||           |j         t          |           d S r   )	r   r0   r   r   r   r3   r?   r   r   r   s        r)   1test_getitem_boolean_frame_with_duplicate_columnszHTestGetitemBooleanMask.test_getitem_boolean_frame_with_duplicate_columnsx  s    IbMM!!!Q''1E1E1EY
 
 
 b1f:&.BF
fh///Fr:   c                 d    t                      }||dk             }t          j        ||           d S )Nr   )r   r3   r?   )r&   r(   r   s      r)   %test_getitem_empty_frame_with_booleanz<TestGetitemBooleanMask.test_getitem_empty_frame_with_boolean  s3     [[aj
b#&&&&&r:   c                     t          g dg dgg d          }|                                }|d         }d|j        d d <   |r|}nt          g dg dgg d          }t          j        ||           d S )	Nrg   rh   rj   r/   rl   d   )r   rM   r   )ra   r,   r   )r   copyrI   r3   r?   )r&   using_copy_on_writer(   df_origviewrA   s         r)   5test_getitem_returns_view_when_column_is_unique_in_dfzLTestGetitemBooleanMask.test_getitem_returns_view_when_column_is_unique_in_df  s     			999-GGG''))#w 	VHH +++{{{!;___UUUH
b(+++++r:   c                     t          g dgt          dg          dddg          }|t          dg                   }t          dgt          dg                    }t          j        ||           d S )N)r   rM   r   ra   KEYrN   rd   r/   r   rG   )r   	frozensetr   r3   r4   rQ   s       r)   'test_getitem_frozenset_unique_in_columnz>TestGetitemBooleanMask.test_getitem_frozenset_unique_in_column  sx    ~	5'0B0BCc/RSSSIug&&'1#Iug$6$6777
vx00000r:   N)rS   rT   rU   r   r#   r   r   r0   nanr   fixturer   r   r   r   r   r   r   rV   r:   r)   r   r      sc       ? ? ?B [# Q!Q qAq6"&#}sCjI Q!Q Q!Q &#1v1v>	
 0 0 0$ ^  ^
        ' ' ', , ,1 1 1 1 1r:   r   c                       e Zd Zd Zd ZdS )TestGetitemSlicec                    t          j        ddd          }t          |          }|ddg         \  }}t           j                            dd          }|t
          ur|d d df         } |||	          }|||         }|j        dd
         }	t          j        ||	           |j	        ||         }t          j        ||	           d S )Ng      $@g      I@rM   r,         r   r   r      )
r0   r   r	   r1   r2   r   r5   r3   assert_equalrI   )
r&   frame_or_seriesvaluesr   startendrJ   objrC   rA   s
             r)   test_getitem_slice_float64z+TestGetitemSlice.test_getitem_slice_float64  s    4q))fQG_
syr1%%)++1:Dod%000U3Y8AbD>
)))s#
)))))r:   c                     t          ddit          g d                    }t          j        t          d          5  |dd          d d d            d S # 1 swxY w Y   d S )	Nrk   r   )z11.01.2011 22:00z11.01.2011 23:00z12.01.2011 00:00z2011-01-13 00:00r   z,Value based partial slicing on non-monotonicr    z
2011-01-01z
2011-11-01)r   r   r#   r$   r%   r^   s     r)   test_getitem_datetime_slicez,TestGetitemSlice.test_getitem_datetime_slice  s    !H   

 

 

 ]J
 
 
 	* 	* |L())	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AAAN)rS   rT   rU   r   r  rV   r:   r)   r   r     s2        * * *&* * * * *r:   r   c                   b    e Zd Zej                            dddhddig          d             ZdS )TestGetitemDeprecatedIndexerskeyrk   rl   c                     t          ddgddggt          j        ddg                    }t          j        t
          d	          5  ||          d d d            d S # 1 swxY w Y   d S )
Nr   rM   r   ra   )rk   r   )rl   rM   r/   r   r    )r   r
   from_tuplesr#   r$   r   )r&   r  r(   s      r)   $test_getitem_dict_and_set_deprecatedzBTestGetitemDeprecatedIndexers.test_getitem_dict_and_set_deprecated  s     VaVj&<h=Q&R&R
 
 
 ]9,LMMM 	 	sGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	AA!$A!N)rS   rT   rU   r#   r   r   r  rV   r:   r)   r  r    sM        [Uc3Z#s$<==  >=  r:   r  )rn   numpyr0   r#   pandasr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   pandas._testing_testingr3   pandas.core.arraysr   r   rX   r   r   r   r  rV   r:   r)   <module>r     s   				                                            * * * * * *61 61 61 61 61 61 61 61rD* D* D* D* D* D* D* D*N0 0 0 0 0 0 0 08l1 l1 l1 l1 l1 l1 l1 l1^$* $* $* $* $* $* $* $*N         r:   