
     f:                         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y)    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y)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        y # 1 sw Y   y xY w)N)a_lotonlyone
notevenonei      r   )levelscodes   )indexcolumnsr   match)r
   r   rangepytestraisesKeyError)selfmidfs      b/var/www/html/py/new-venv/lib/python3.12/site-packages/pandas/tests/frame/indexing/test_getitem.py test_getitem_unused_level_raisesz,TestGetitem.test_getitem_unused_level_raises   sg    6r
Cq6Aq6"
 rq26]]8<8 	|	 	 	s   AA$c                 F   t        dd      }t        t        j                  j	                  d      j                  d      |      }||d      }t        j                  ||j                  d d df          |d   }t        j                  ||j                  d d df          y )Nz1/1/2000   )periods   )
   r,   r   r   )	r   r   nprandomdefault_rngstandard_normaltmassert_series_equaliloc)r&   rngr(   tss       r)   test_getitem_periodindexz$TestGetitem.test_getitem_periodindex&   s    :q1ryy,,Q/??HRUVAZ
r2771a4=1
^
r2771a4=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                  ||       y )Nz
12-31-1999z
12-31-2000r   r   bool)dtyper   r   )r   r   r   r   listr   r5   assert_frame_equal)r&   catsexpecteddummiesresults        r)   1test_getitem_list_of_labels_categoricalindex_colsz=TestGetitem.test_getitem_list_of_labels_categoricalindex_cols0   sj    Il3Y|5LMNq!fq!f-VAq6SWXd#goo./
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                  ||       y )Nr   r   Aname)r   r   r   r5   r6   r7   loc)r&   datar(   rB   rD   s        r)   0test_getitem_sparse_column_return_type_and_dtypez<TestGetitem.test_getitem_sparse_column_return_type_and_dtype9   s    Aq6"T{#$S)C
vx0 A
vx03
vx0r;   c                     t        ddggt        ddgd            }|j                  }|d   }t        j                  ||       y )Nr   r.   rG   Bstringr>   r0   )r   r	   rG   r5   r6   r&   r(   rD   rB   s       r)   test_getitem_string_columnsz'TestGetitem.test_getitem_string_columnsH   sA    AxSz)JKc7
vx0r;   N)__name__
__module____qualname__r*   r:   rE   rL   rR    r;   r)   r   r      s    	2011r;   r   c            	           e Zd Zd Zd Zd Zej                  j                  de	e
eed d gg d      ej                  j                  d	d
dg      d               Zd Zd Zd Zy)TestGetitemListLikec                     t        dgdgdgd      }g d|_        t        j                  t        d      5  |g d    d d d        y # 1 sw Y   y xY w)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_keyQ   sP     cU#cU;<$
 ]]8+BC 	 	  	  	 s   AAc                 D   t        t        j                  j                  d      j	                  d      t        d            }d|j                  _        |ddg   }|j                  j                  dk(  sJ |j                  d d dd f   }t        j                  ||       y )Nr.   )   ra   AABCr0   foorN   C)r   r1   r2   r3   r4   r?   r   rI   r7   r5   r@   rQ   s       r)   test_getitem_list_duplicatesz0TestGetitemListLike.test_getitem_list_duplicates[   s    II!!!$44V<d6l
  

S#J~~""e+++771ab5>
fh/r;   c                     t        g dg dgg d      }d}t        j                  t        t	        j
                  |            5  |dg    d d d        y # 1 sw Y   y xY w)Nr   r.   r   ra   r,      ark   br0   z"None of [Index(['baf'], dtype=r    baf)r   r#   r$   r%   reescape)r&   r(   msgs      r)   test_getitem_dupe_colsz*TestGetitemListLike.test_getitem_dupe_colsh   sL    	9-G0]]8299S>: 	wK	 	 	s   AAidx_typec           
      P    t        t        | t        t        |                         S N)dictzipr"   lenkeyss    r)   <lambda>zTestGetitemListLike.<lambda>u   s    c$c$i(89: r;   c           
      l    t        t        | t        t        |                         j	                         S rt   )ru   rv   r"   rw   ry   rx   s    r)   rz   zTestGetitemListLike.<lambda>v   s$    c$c$i(89:??A r;   )r?   iterr	   setru   	dict_keys)idsr   r   r.   c                    |dk(  r|d}}nHt        t        j                  j                  d      j	                  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        y ||   }	|j                  d d |f   }
|j                  j                  |
j                  _        t!        j"                  |	|
        |||gz         }t        j                  t$        d      5  ||    d d d        y # 1 sw Y   y xY w# 1 sw Y   y xY w)Nr   foodr.   )   r   ))rc   bar)bazqux)peekaboo)sthsth2rH   r0   )goodr   r   as an indexer is not supportedr    znot in index)r   r1   r2   r3   r4   r	   r   r?   
isinstancer}   ru   r#   r$   	TypeErrorrJ   namesr5   r@   r%   )r&   rr   r   float_frameframemissingry   idx	idx_checkrD   rB   s              r)   test_getitem_listlikez)TestGetitemListLike.test_getitem_listliken   sF     Q;(&7E 		%%a(88@F(E 'Ga %--"23tn$(	cC;'y0PQ c
 3ZF99Q	\*!&!4!4
fh/twi'(]]8>: 	#J	 	 	 	s   ;E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                  ||       y )Nrg   rh   rk   rl   c              3       K   | ]  }|  y wrt   rV   .0r[   s     r)   	<genexpr>zBTestGetitemListLike.test_getitem_iloc_generator.<locals>.<genexpr>        %1%   r   r.   r.   r   r,   ri   r   r   )r   r7   r5   r@   r&   r(   indexerrD   rB   s        r)   test_getitem_iloc_generatorz/TestGetitemListLike.test_getitem_iloc_generator   sV    YY78%f%!Aq6A71v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                  ||       y )Nrg   rh   r   c              3       K   | ]  }|  y wrt   rV   r   s     r)   r   zRTestGetitemListLike.test_getitem_iloc_two_dimensional_generator.<locals>.<genexpr>   r   r   r   r   r,   ri   rl   r.   )rI   r   )r   r7   r   r5   r6   r   s        r)   +test_getitem_iloc_two_dimensional_generatorz?TestGetitemListLike.test_getitem_iloc_two_dimensional_generator   sS    YY78%f%!$1a&s1a&9
vx0r;   c                    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                  ||       y )Nr/   z
01-01-2022r   )days)r-   freqr   
2022-01-01
2022-01-03)r   r   r.   )r   z
2022-01-02r   zdatetime64[ns])r>   r   r.   )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   rJ   r   r5   r@   rQ   s       r)   !test_getitem_iloc_dateoffset_daysz5TestGetitemListLike.test_getitem_iloc_dateoffset_days   s+   rO\2JA<NO
 \2:&Q'
 	fh/rObzq/J
 \2U&Qa0
 	fh/rO\2Jq<QR
 \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   P   s     0 [[:A	
 B   [[X1v.# /#J01'*r;   rX   c                       e Zd Zd Zd Zy)TestGetitemCallablec                 V   |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                  ||       y )	Nc                      y)NrG   rV   r[   s    r)   rz   z;TestGetitemCallable.test_getitem_callable.<locals>.<lambda>   s    r;   rG   c                 
    ddgS )NrG   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 r;   r   r.   )rJ   r5   r6   r@   r7   )r&   r   rD   rB   r(   s        r)   test_getitem_callablez)TestGetitemCallable.test_getitem_callable   s    ]+??1c6*
vx012??1sCj=1
fkooa#sm&DE!_12##QFAI.
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                  ||       y )Nr   r.   rk   rl   r0   )r   r5   r@   rJ   )r&   r(   rB   rD   s       r)   %test_loc_multiindex_columns_one_levelz9TestGetitemCallable.test_loc_multiindex_columns_one_level   sf    Ax3*6aSC5'2C
fh/3
fh/r;   N)rS   rT   rU   r   r   rV   r;   r)   r   r      s    0	0r;   r   c                   r   e Zd Zd Zej
                  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y)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kD     }|j                  g    }t        j                  ||       d}t        j                  t        |      5  ||j
                  dk      d d d        t        j                  t        |      5  ||j
                  dkD      d d d        y # 1 sw Y   @xY w# 1 sw Y   y xY w)NrG   ri   int64rP   )r   r   r.   r   r   r.   )r   r.   r   T)orderedrN   )r>   rI   r   Frk   r   )r   r   r   r.   ra   z7Unordered Categoricals can only compare equality or notr    )r   r1   aranger   r   r   r7   r5   r@   r#   r$   r   )r&   df3df4rD   rB   rp   s         r)   (test_getitem_bool_mask_categorical_indexz?TestGetitemBooleanMask.test_getitem_bool_mask_categorical_index   s   RYYq0 #"&y$?		
 RYYq0 #"&y%@		
 SYY#%&88B<
fh/SYY#%&88B<
fh/SYY!^$88I&
fh/SYY!^$88I&
fh/ SYY]#88QC=
fh/SYY]#88B<
fh/ H]]9C0 			A	]]9C0 			A	 		 		 	s   +H=!I	=I	Izdata1,data2,expected_datar   r.   r   ra   g      ?ri      r   rZ   g      @g      @g      @g       @r,   c                    t        t        j                  |            }t        t        j                  |            }t        ||gd      }||dkD     }t	        |      D 	ci c]  \  }}	|t        j                  |	       }
}}	t        |
      j                  ddd      }t        j                  ||       y c c}	}w )Nr   )axisr.   r   )r.   r   r0   )r   r1   arrayr   	enumeraterenamer5   r@   )r&   data1data2expected_datadf1df2r(   rD   icolexdictrB   s               r)   5test_getitem_bool_mask_duplicate_columns_mixed_dtypeszLTestGetitemBooleanMask.test_getitem_bool_mask_duplicate_columns_mixed_dtypes7  s    . ((S#JQ'BF1:=1IJvq#!RXXc]"JJV$++aL+A
fh/ Ks   " B:c                 p    g d}t        t        j                  d      j                  dd      |d      }|S )N)rG   rG   rd   D   r   ra   float64r   r>   )r   r1   r   reshape)r&   dupsr(   s      r)   df_dup_colsz"TestGetitemBooleanMask.df_dup_colsX  s/    #ryy},,Q2D	R	r;   c                     |}d}t        j                  t        |      5  ||j                  dkD      d d d        y # 1 sw Y   y xY w)Nz/cannot reindex on an axis with duplicate labelsr    ri   )r#   r$   
ValueErrorrG   )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 	rttaxL	 	 	s	   <Ac                    t        t        j                  d      j                  dd      g dd      }||j                  dkD     }|j
                  |_        |}||j                  dkD     }t        j                  ||       y Nr   r   ra   )rG   rN   rd   r   r   r   ri   )r   r1   r   r   rd   r   r5   r@   r&   r   r(   rB   rD   s        r)   2test_getitem_boolean_series_with_duplicate_columnszITestGetitemBooleanMask.test_getitem_boolean_series_with_duplicate_columnsg  sr     IIbM!!!Q'1EY
 bddQh<&..BDD1H
fh/r;   c                     t        t        j                  d      j                  dd      g dd      }||dkD     }|j                  |_        |}||dkD     }t        j                  ||       y r   )r   r1   r   r   r   r5   r@   r   s        r)   1test_getitem_boolean_frame_with_duplicate_columnszHTestGetitemBooleanMask.test_getitem_boolean_frame_with_duplicate_columnsu  sh    IIbM!!!Q'1EY
 b1f:&..BF
fh/r;   c                 T    t               }||dkD     }t        j                  ||       y )Nr   )r   r5   r@   )r&   r(   r   s      r)   %test_getitem_empty_frame_with_booleanz<TestGetitemBooleanMask.test_getitem_empty_frame_with_boolean  s(     [aj
b#&r;   c                 *   t        g dg dgg d      }|j                         }|d   }t        j                  |      5  d|j                  d d  d d d        |r|}nt        g dg dgg d      }t        j
                  ||       y # 1 sw Y   :xY w)	Nrg   rh   rj   r0   rl   d   )r   r.   r   )ra   r,   r   )r   copyr5   assert_cow_warningrJ   r@   )r&   using_copy_on_writewarn_copy_on_writer(   df_origviewrB   s          r)   5test_getitem_returns_view_when_column_is_unique_in_dfzLTestGetitemBooleanMask.test_getitem_returns_view_when_column_is_unique_in_df  s     	9-G'')#w""#56 	DHHQK	H +{!;_UH
b(+	 	s    B		Bc                     t        g dgt        dg      dddg      }|t        dg         }t        dgt        dg            }t        j                  ||       y )N)r   r.   r   ra   KEYrN   rd   r0   r   rH   )r   	frozensetr   r5   r6   rQ   s       r)   'test_getitem_frozenset_unique_in_columnz>TestGetitemBooleanMask.test_getitem_frozenset_unique_in_column  sV    ~	5'0BCc/RSIug&'1#Iug$67
vx0r;   N)rS   rT   rU   r   r#   r   r   r1   nanr   fixturer   r   r   r   r   r   r   rV   r;   r)   r   r      s   ?B [[# Q!Q qAq6"&&#}sCjI Q!Q Q!Q &&#1v1v>	
00$ ^^ 
00',1r;   r   c                       e Zd Zd Zd Zd Zy)TestGetitemSlicec                    t        j                  ddd      }t        |      }|ddg   \  }}t         j                  j	                  d      j                  d      }|t        ur	|d d df   } |||      }||| }|j                  dd	 }	t        j                  ||	       |j                  || }t        j                  ||	       y )
Ng      $@g      I@r.   r,      )   r   r   r      )r1   r   r	   r2   r3   r4   r   r7   r5   assert_equalrJ   )
r&   frame_or_seriesvaluesr   startendrK   objrD   rB   s
             r)   test_getitem_slice_float64z+TestGetitemSlice.test_getitem_slice_float64  s    4q)fQG_
syy$$Q'77@)+1:Dd%0U388Ab>
)s#
)r;   c                     t        ddit        g d            }t        j                  t        d      5  |dd  d d d        y # 1 sw Y   y xY w)	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  sU    !H

 ]]J
 	* |L)	* 	* 	*s   AAc                 @   t        t        j                  j                  d      j	                  d            }|j
                  t        d d d      f   }|j                  dk(  sJ |j
                  t        d d d      t        d       f   }t        j                  ||       y )Nr.   )r/   r   )r,   r   )
r   r1   r2   r3   r4   r7   sliceshaper5   r@   rQ   s       r)   )test_getitem_slice_same_dim_only_one_axisz:TestGetitemSlice.test_getitem_slice_same_dim_only_one_axis  s    ryy,,Q/??HI%dA.01||v%%%775tQ/t<=
fh/r;   N)rS   rT   rU   r   r  r  rV   r;   r)   r   r     s    *&*$0r;   r   c                   \    e Zd Zej                  j                  dddhddig      d        Zy)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        y # 1 sw Y   y xY w)
Nr   r.   r   ra   )rk   r   )rl   r.   r0   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
 ]]9,LM 	sG	 	 	s   AAN)rS   rT   rU   r#   r   r   r  rV   r;   r)   r  r    s2    [[Uc3Z#s$<= >r;   r  )rn   numpyr1   r#   pandasr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   pandas._testing_testingr5   pandas.core.arraysr   r   rX   r   r   r   r  rV   r;   r)   <module>r     sn    	        *31 31lF* F*R0 08i1 i1X,0 ,0^ r;   