
    o[weT>                         d dl m Z mZ d dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ d
dZ G d d          Z G d d	          ZdS )    )copydeepcopyN)	is_scalar)	DataFrameSeriesc                    t          |t                    rt          |g| j        z            }|t	          |          r\|dk    r*d}t
          j        }|                    | j        d           nt          j	        ||          }|
                    |           nt          j        |          }|                                }||j        d         z  }||j        d         z  dk    rt          d          t          j        ||                              |          }n2t
          j                            d                              |          } | |fd|i|S )z
    construct an object for the given shape
    if value is specified use that if its a scalar
    if value is an array, repeat it as needed
    Nemptydtyper   z!invalid value passed in construct   r   )
isinstanceinttuple	_AXIS_LENr   npfloat64pop_info_axis_namer	   fillprodravelshape	Exceptionrepeatreshaperandomdefault_rngstandard_normal)boxr   valuer   kwargsarrfshape	new_shapes           Alib/python3.11/site-packages/pandas/tests/generic/test_generic.py	constructr&      sJ    % /ug-..U 	;
 

3.5555huE222WU^^F++--C1-I	!$)) CDDD)C++33E::CCi##A&&66u==3s**%*6***    c                      e Zd Zej                            dej        d  ed          D              e	d  ed          D                       g          d             Z
d Zd Zd Zd	 Zd
 Zd Zd Zej                            dg d          d             Zd Zd Zej                            deed d g          ej                            dg d          d                         Zd ZdS )TestGenericfuncc                 8    i | ]}||                                 S  lower.0xs     r%   
<dictcomp>zTestGeneric.<dictcomp>:   s"    000aQ		000r'   ABCDc                 8    i | ]}||                                 S r,   r-   r/   s     r%   r2   zTestGeneric.<dictcomp>;   s"    777QAqwwyy777r'   c                    t          d          }|j        D ]j}||i}t          |dfi |} |j        di ||i}|                                }t          ||t          d                     t          j        ||           kd S )Nr3      abcdr,   )list_AXIS_ORDERSr&   renamer   setattrtmassert_equal)	selfframe_or_seriesr*   idxaxisr!   objresultexpecteds	            r%   test_renamezTestGeneric.test_rename6   s     6ll#0 	. 	.DC[FOQ99&99C  SZ//4,//FxxzzHHdDLL111OFH----	. 	.r'   c                 H   dfdt          j                  D             }t          fi |}|                                }t	          j        ||           |                                }t          fddi|}t          |t                    r|j	        d d         |_	        t	          j        |
                    d          |           t          j        g d          }t          fd|i|}|                                }t	          j        ||           d S )	Nr6   c                 p    i | ]2}                     |          t          t                              3S r,   )_get_axis_namer8   range)r0   ir?   ns     r%   r2   z5TestGeneric.test_get_numeric_data.<locals>.<dictcomp>N   sE     
 
 
 **1--tE!HH~~
 
 
r'   r    r	   r   T)drop)TTFT)rI   r   r&   _get_numeric_datar<   r=   _get_bool_datar   r   columnsreset_indexr   array)r>   r?   r!   orC   rD   r"   rK   s    `     @r%   test_get_numeric_dataz!TestGeneric.test_get_numeric_dataL   sP   
 
 
 
 
?455
 
 
 oq33F33$$&&
""" !!##_aIIwI&IIa## 	- y!}H
***55x@@@ h00011oq>>>v>>$$&&
"""""r'   c                    t          |d          }d|j         d}t          j        t          |          5  t          |dk               d d d            n# 1 swxY w Y   t          j        t          |          5  t          |dk               d d d            n# 1 swxY w Y   t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   t          |dd          }t          j        t          |          5  t          |dk               d d d            n# 1 swxY w Y   t          j        t          |          5  t          |dk               d d d            n# 1 swxY w Y   t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   t          |dt          j                  }t          j        t          |          5  t          |dk               d d d            n# 1 swxY w Y   t          j        t          |          5  t          |dk               d d d            n# 1 swxY w Y   t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   t          |d          }t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   t          |dd          }t          |dd          }t          j        t          |          5  |r	 d d d            n# 1 swxY w Y   t          j        t          |          5  |o| d d d            n# 1 swxY w Y   t          j        t          |          5  |p| d d d            n# 1 swxY w Y   t          j        t          |          5  |  d d d            d S # 1 swxY w Y   d S )	Nr6   r   zThe truth value of a z is ambiguousmatchr      )r   r    )r&   __name__pytestraises
ValueErrorboolr   nan)r>   r?   rB   msgobj1obj2s         r%   test_nonzerozTestGeneric.test_nonzerog   s    q111Mo&>MMM]:S111 	 	NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 q:::]:S111 	 	NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 q???]:S111 	 	NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 q111]:S111 	 	III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 ;;;;;;]:S111 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	 	MT	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	LD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAA>BB"%B"C  C$'C$D88D<?D<E>>FF$G  GGH""H&)H&I((I,/I,J**J.1J.!K==LLMMM=NNN4OO	O	+O<<P P c                     fd}dj          d}t          j        t          |          5   |g d           d d d            n# 1 swxY w Y    |d            |d            |d           d S )	Nc                 *    t          dd|           S )N   rX   )r   r    r   )r&   )r   r?   s    r%   fz;TestGeneric.test_frame_or_series_compound_dtypes.<locals>.f   s    _AQeLLLLr'   z+compound dtypes are not implemented in the z constructorrV   ))Azdatetime64[h])Bstr)Cint32int64r   zM8[ns])rY   rZ   r[   NotImplementedError)r>   r?   rf   r_   s    `  r%   $test_frame_or_series_compound_dtypesz0TestGeneric.test_frame_or_series_compound_dtypes   s   	M 	M 	M 	M 	M=%.= = = 	
 ].c::: 	F 	FADDDEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	
'


	)	(s   AAAc                 p   t          |d          }d|_        t          |d          }d|_        dD ]0} t          ||          d          }t          j        ||           1dD ]0} t          ||          |          }t          j        ||           1dD ]`} t          ||          |          }t          j        ||           t          j        |||z             t          j        |||z             a|                    |          }t          j        ||           ||z   }t          j        |           dD ]v} t          ||          |          } t          ||          |          }t          j        |           t          j        ||z             t          j        ||z             wd S )Nre   rU   foobar)__add____sub____truediv____mul__rX   )__eq____le____ge__)r&   namegetattrr<   assert_metadata_equivalentcombine_first)r>   r?   rR   o2oprC   v1v2s           r%   test_metadata_propagationz%TestGeneric.test_metadata_propagation   s    oQ///a000 C 	5 	5B#WQ^^A&&F)!V4444 C 	5 	5B#WQ^^A&&F)!V4444 1 	6 	6BB""B)!R000)!R"W555)!R"W5555 $$
%a000 R
%f--- 1 	3 	3BB""BB##B)"---)"r'222)"r'2222	3 	3r'   c                     t          |d          }|j        t          j        |j                  k    sJ |j        dt          |j                  z  k    sJ d S )N
   rU   )r&   sizer   r   r   lenaxesr>   r?   rR   s      r%   test_size_compatzTestGeneric.test_size_compat   s[     oR000v))))))vs16{{*******r'   c                 4   t          |d          }t          j        t          dd          5  t	          t          j        |d                    dk    sJ t	          t          j        |d                    dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   rU   z.swapaxes' is deprecatedF)rW   check_stacklevel   r   )r&   r<   assert_produces_warningFutureWarningr   r   array_splitr   s      r%   test_split_compatzTestGeneric.test_split_compat   s    oR000'!;e
 
 
 	2 	2 r~a++,,1111r~a++,,11111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   ABBBc                 x   t          |d          }d}d}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr   z	Star Warszunexpected keywordrV   )epic)r&   rZ   r[   	TypeErrormaxvarsumany)r>   r?   rB   starwarserrmsgs        r%   test_stat_unexpected_keywordz(TestGeneric.test_stat_unexpected_keyword   s"   ++%]9F333 	# 	#GGG"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#]9F333 	# 	#GGG"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#]9F333 	# 	#GGG"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#]9F333 	# 	#GGG"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#sG   AAA9BB #B C%%C),C)D//D36D3)r   cumsumr   r   c                     t          |d          }t          ||          }|j        |k    sJ |j                            |          sJ d S )Nr   )r&   rz   rY   __qualname__endswith)r>   r*   r?   rB   rf   s        r%   test_api_compatzTestGeneric.test_api_compat   sW    
 ++CzT!!!!~&&t,,,,,,,r'   c                    t          |d          }t          j        dg          }d}t          j        t
          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t
          |          5  |	                    |           d d d            d S # 1 swxY w Y   d S )Nr   r   $the 'out' parameter is not supportedrV   out)
r&   r   rQ   rZ   r[   r\   r   r   r   r   )r>   r?   rB   r   r   s        r%   test_stat_non_defaults_argsz'TestGeneric.test_stat_non_defaults_args  s,   ++hsmm7]:V444 	 	GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:V444 	 	GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:V444 	 	GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:V444 	 	GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   A&&A*-A*B//B36B3C88C<?C<EE	Ec                    dgdg|j         dz
  z  z   }t          ||dd          }t          j        |                                |           t          j        |                    dd          |           t          j        |                    dd	          |           d
gdg|j         dz
  z  z   }t          ||dd          }t          j        |                                |           t          j        |                    dd          |           t          j        |                    dd          |           d S )Ni  rX   int8)r   r    r   g     p@)beforeafterg     @@i g    `FAg    >A)r   r&   r<   r=   truncate)r>   r?   r   smallbigs        r%   test_truncate_out_of_boundsz'TestGeneric.test_truncate_out_of_bounds  s,    1#!:Q!>?@/5aHHH
((%000
as;;UCCC
b<<eDDD so&?!&CDEfAFFF
,,,
AS993???
Bc::C@@@@@r'   c                 .    |                      d          S )NFdeepr   r1   s    r%   <lambda>zTestGeneric.<lambda>)  s    166u6#5#5 r'   c                 .    |                      d          S )NTr   r   r   s    r%   r   zTestGeneric.<lambda>)  s    TARAR r'   r   )r   rX   r   c                 r    t          ||          } ||          }||usJ t          j        ||           d S N)r&   r<   r=   )r>   r?   r   r*   rB   obj_copys         r%   test_copy_and_deepcopyz"TestGeneric.test_copy_and_deepcopy'  sI     //499s""""
#&&&&&r'   c                      |            }d}t          j        t          |          5  |j        }d d d            n# 1 swxY w Y   ||j        u sJ d S )Nz&(Series|DataFrame)._data is deprecatedrV   )r<   r   DeprecationWarning_data_mgr)r>   r?   rB   r_   mgrs        r%   test_data_deprecatedz TestGeneric.test_data_deprecated3  s    o6'(:#FFF 	 	)C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	chs   <A A N)rY   
__module__r   rZ   markparametrizeri   r.   r8   r   rE   rS   rb   rn   r   r   r   r   r   r   r   r   r   r   r   r,   r'   r%   r)   r)   5   s       [I0044<<000F77$$v,,77788	
 . . .# # #6/ / /b  (03 03 03d+ + +2 2 2# # # [V%D%D%DEE- - FE-  A A A" [	x557R7RS  [Wiii00' ' 10	 
'    r'   r)   c                   2   e Zd Zej                            d ej                     ej                     ej	                    g          d             Z
d Zd Zd Zd Zd Zd Zej                            d ej                     ej                     ej	                    g          d	             Zd
 Zd Zej                            d ej                     ej                     ej	                    g          d             Zd Zd Zd Zd ZddZdS )TestNDFrameserc                 T    t          j        |                                |           d S r   )r<   assert_series_equalsqueezer>   r   s     r%   test_squeeze_series_noopz$TestNDFrame.test_squeeze_series_noop>  s%    
 	s{{}}c22222r'   c                 z    t          j                    }t          j        |                                |           d S r   r<   makeTimeDataFrameassert_frame_equalr   r>   dfs     r%   test_squeeze_frame_noopz#TestNDFrame.test_squeeze_frame_noopE  s1    !##
bjjllB/////r'   c                     t          j                                        dg          }t          j        |                                |d                    d S Nrg   )rO   )r<   r   reindexr   r   r   s     r%   test_squeeze_frame_reindexz&TestNDFrame.test_squeeze_frame_reindexJ  sH    !##++SE+::
rzz||RW55555r'   c                     t          g dt          j                  }t          |g          }t	          j        ||                                           t	          j        ||                                           d S )Nfive)ry   r   )r   r   r   r   r<   r   r   )r>   empty_seriesempty_frames      r%   test_squeeze_0_len_dimz"TestNDFrame.test_squeeze_0_len_dimO  sk    bvRZ@@@//
|\-A-A-C-CDDD
|[-@-@-B-BCCCCCr'   c                    t          j        d          j        d d d df         }|j        dk    sJ t          j        |                    d          |j        d                    t          j        |                    d          |j        d                    t          j        |                    d          |j        d d df                    t          j        |                    d          |j        d d df                    |                                |j        d         k    sJ d	}t          j        t          |
          5  |                    d           d d d            n# 1 swxY w Y   d}t          j        t          |
          5  |                    d           d d d            d S # 1 swxY w Y   d S )NrX   )nper)rX   rX   r   rA   indexrO   )r   r   z)No axis named 2 for object type DataFramerV   r   z)No axis named x for object type DataFramer1   )	r<   r   ilocr   r   r   rZ   r[   r\   )r>   r   r_   s      r%   test_squeeze_axiszTestNDFrame.test_squeeze_axisV  s   !q))).qqq"1"u5x6!!!!
rzzqz11271:>>>
rzzwz77DDD
rzzqz1127111a4=AAA
rzzyz9927111a4=IIIzz||rwt},,,,9]:S111 	 	JJAJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	9]:S111 	! 	!JJCJ   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s$   E11E58E5F==GGc                     t          j        d          }t          j        |                    d          |           d S )Nre   r   r   r   r   s     r%   test_squeeze_axis_len_3z#TestNDFrame.test_squeeze_axis_len_3f  s9    !!$$
bjjaj00"55555r'   c                 $   t          j                    }t          j        t          j        |          |           t          j                                        dg          }t          j        t          j        |          |d                    d S r   )r<   makeFloatSeriesr   r   r   r   r   )r>   sr   s      r%   test_numpy_squeezezTestNDFrame.test_numpy_squeezej  sq      
rz!}}a000!##++SE+::
rz"~~r#w77777r'   c                 T    t          j        |                                |           d S r   )r<   r   	transposer   s     r%   test_transpose_seriesz!TestNDFrame.test_transpose_seriesq  s%    
 	s}}44444r'   c                     t          j                    }t          j        |                                                                |           d S r   )r<   r   r   r   r   s     r%   test_transpose_framez TestNDFrame.test_transpose_framex  s=    !##
bllnn6688"=====r'   c                    t          j                    }t          j        ||          }|t          u r't          j        t          j        |          |           t          j        t          j        t          j        |                    |           d}t          j	        t          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nz%the 'axes' parameter is not supportedrV   rX   )r   )r<   r   get_objr   r   r   r   r=   rZ   r[   r\   )r>   r?   rB   r_   s       r%   test_numpy_transposez TestNDFrame.test_numpy_transpose|  s   "$$jo..f$$"2<#4#4c::: 	R\#%6%677===5]:S111 	& 	&L1%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   /CCCc                     g d}|                     |          }t          |j                             |          |j                             |          |j                  }t          j        ||           d S )NrX   r      re   r   )datar   r   )taker   valuesr   r   r<   r   )r>   r   indicesr   rD   s        r%   test_take_serieszTestNDFrame.test_take_series  sv     '&&hhw)))..)))
 
 

 	sH-----r'   c                    g d}t          j                    }|                    |          }t          |j                            |d          |j                            |          |j                  }t          j        ||           d S )Nr   r   r   )r   r   rO   )r<   r   r   r   r   r   rO   r   )r>   r   r   r   rD   s        r%   test_take_framezTestNDFrame.test_take_frame  s    &&&!##ggga00(--((J
 
 

 	c8,,,,,r'   c                 (   g d}t          j                    }t          j        ||          }d}t          j        t
          |          5  |                    |d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    ||           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    |d	
           d d d            d S # 1 swxY w Y   d S )N)r   r   rX   z1take\(\) got an unexpected keyword argument 'foo'rV   r   )rp   r   r   z%the 'mode' parameter is not supportedclip)mode)r<   r   r   rZ   r[   r   r   r\   )r>   r?   r   rB   r_   s        r%   test_take_invalid_kwargsz$TestNDFrame.test_take_invalid_kwargs  s   --"$$jo..B]9C000 	% 	%HHW!H$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 5]:S111 	+ 	+HHW'H***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 6]:S111 	+ 	+HHW6H***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s6   
A..A25A2B::B>B>"DDDc                 |   |} |t                     }|j                                        }|D ]}|                    |          |                    |          k    sJ |                    |          |                    |          k    sJ |                    |          |                    |          k    sJ d S )Nr
   )object_AXIS_TO_AXIS_NUMBERkeys_get_axis_numberrH   _get_block_manager_axis)r>   r?   r   rB   r   vs         r%   test_axis_classmethodsz"TestNDFrame.test_axis_classmethods  s    c)..00 	T 	TA''**c.B.B1.E.EEEEE%%a((C,>,>q,A,AAAAA..q11S5P5PQR5S5SSSSSS	T 	Tr'   c                     t          ddg          }|t          u r|                                }|j        |j        u sJ |                                }|j        |j        usJ d S )NrX   r   )r   r   to_frameflagsr   )r>   r?   rB   ra   s       r%   test_flags_identityzTestNDFrame.test_flags_identity  sf    aVnni'',,..CyCI%%%%xxzzz******r'   returnNc                     d}t          j        t          |          5  t          ddgi                                           d d d            d S # 1 swxY w Y   d S )NzPDataFrame.bool is now deprecated and will be removed in future version of pandasrV   colF)r<   r   r   r   r]   )r>   msg_warns     r%   test_bool_depzTestNDFrame.test_bool_dep  s    * 	 'XFFF 	/ 	/uug&'',,...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   %AAA)r	  N)rY   r   r   rZ   r   r   r<   r   makeStringSeriesmakeObjectSeriesr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r,   r'   r%   r   r   ;  s        [""$$&9b&9&;&;=PR=P=R=RS 3 3 30 0 0
6 6 6
D D D! ! ! 6 6 68 8 8 [""$$&9b&9&;&;=PR=P=R=RS 5 5 5> > >& & & [""$$&9b&9&;&;=PR=P=R=RS . . .	- 	- 	-+ + +$T T T+ + +/ / / / / /r'   r   )NN)r   r   numpyr   rZ   pandas.core.dtypes.commonr   pandasr   r   pandas._testing_testingr<   r&   r)   r   r,   r'   r%   <module>r     s         
      / / / / / /             + + + +@C C C C C C C CLS/ S/ S/ S/ S/ S/ S/ S/ S/ S/r'   