
    Owg                     ~   d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlZd dlmZmZ d dlmZ d Zej&                  j)                  dg d      d	        Zd
 Zej&                  j/                  exs  e       d      d        Zd Zej&                  j)                  dej4                        d        Zd Zd Zy)    N)using_pyarrow_string_dtype)PYPY)is_dtype_equalis_object_dtype)IndexSeriesc                     t         j                  j                  j                  } | j	                  d      sJ t         j                  j
                  j                  } | j	                  d      sJ t        j                  j                  } | j	                  d      sJ t        j
                  j                  } | j	                  d      sJ y )Nz4
DataFrame.notnull is an alias for DataFrame.notna.
z2
DataFrame.isnull is an alias for DataFrame.isna.
z.
Series.notnull is an alias for Series.notna.
z,
Series.isnull is an alias for Series.isna.
)pd	DataFramenotnull__doc__
startswithisnullr   )docs    R/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/base/test_misc.pytest_isnull_notnull_docstringsr      s    
,,


&
&C>>RSSS
,,


%
%C>>PQQQ
..
 
 C>>LMMM
--

C>>JKKK    zop_name, op))add+)sub-)mul*)mod%)powz**)truediv/)floordivz//c                     | }|j                   j                         }d}dj                  |||g      }|t        ||      j                  v sJ dj                  |||g      }|t        |d|z         j                  v sJ y )Nother r)__name__lowerjoingetattrr   )frame_or_seriesop_nameopklassoperand1operand2expected_strs          r   test_binary_ops_docstringr/   $   s     E~~##%HH88Xr845L75'2::::: 88Xr845L75#-8@@@@@r   c                    | }dD ]  }t        ||d       J  dD ]  }t        ||      sJ  d}t        j                  t        |      5  |j                          d d d        |j                  dk(  sJ |j                  t        |      k(  sJ t        dg      j                         dk(  sJ t        dg      j                         dk(  sJ y # 1 sw Y   sxY w)N)shapedtypeTnbytes)stridesitemsizebasedataz6can only convert an array of size 1 to a Python scalarmatch   )r'   hasattrpytestraises
ValueErroritemndimsizelenr   r   )index_or_series_objobjpmsgs       r   test_ndarray_compat_propertiesrH   ?   s    
C / 1sAt$0001 5 #3?""# CC	z	- 
 88q==88s3x!:??!!!1#;""" s   CCz=not relevant for PyPy doesn't work properly for arrow stringsreasonc                 
   | }t        |t              r'd}|j                  j                  j	                          nd}|j                  j	                          |j                         }|j                  d      }t        |      xs |xr t        |j                        }t        |j                  t        j                        xs2 |xr. t        |j                  j                  t        j                        }t        |d      xs$ |xr  t        |j                  j                  d      }t        |      dk(  rd}||cxk(  r|k(  sJ  J |s|s|r||kD  s	J ||k(  sJ |t        j                  |      z
  }	t        |	      dk  sJ y )NTF)deepzstring[python]r   d   )
isinstancer   index_engineclear_mappingmemory_usager   r2   r
   CategoricalDtyper   rC   sys	getsizeofabs)
index_or_series_memory_objrE   is_serresres_deep	is_objectis_categoricalis_object_stringexpecteddiffs
             r   test_memory_usager`   U   s[   
 %C#v		'')!!#



CT*H$O)NOCII4NI		2+>+>? C:ciioor/B/BC  &c+;< D>#))//3CD  3x1}3*(*****	n(8#~~h cmmC((Dt9s??r   c                     | }|j                  d      }|j                  d      }|j                  j                         }|||z   k(  sJ y )NTrO   F)rR   rO   )series_with_simple_indexseriestotal_usagenon_index_usageindex_usages        r   #test_memory_usage_components_seriesrh   }   sR    %F%%D%1K)))6O,,++-K/K7777r   r2   c           	         t        t        d      | t        d      D cg c]  }d| 	 c}d      }|j                  d      }|j                  d      }|j                  j                         }|||z   k(  sJ y c c}w )N   zi-a)r2   rO   nameTrb   F)r   rangerR   rO   )r2   ird   re   rf   rg   s         r   *test_memory_usage_components_narrow_seriesro      s}    E!HEE!H1MqBqc(1MTWXF%%D%1K)))6O,,++-K/K7777	 2Ns   A<c           	      N   |}t        |t        j                        r0| j                  t        j
                  j                  d             nZ|j                  j                  dk(  rAt        |t              r1t        j
                  j                  d      }| j                  |       t        |d      }t        j                  ||      }d|cxk  rt        |      k  sJ  J t        j                  ||t        t        |                  }d|cxk  rt        |      k  sJ  J y )Nz7np.searchsorted doesn't work on pd.MultiIndex: GH 14833rI   cz"complex objects are not comparabler   )default)sorter)rN   r
   
MultiIndexapplymarkerr=   markxfailr2   kindr   maxnpsearchsortedrC   rm   )requestrD   rE   rv   max_objrO   s         r   test_searchsortedr~      s     C#r}}%KKP  	

 
3	:c5#9 {{  (L MD!#q!GOOC)E!S!!!!!OOCs3xAE!S!!!!!r   c                 |   | }t        |      dk(  rt        j                  d       t        |      }|d   |j                  d   k(  sJ |d   |j                  d   k(  sJ |d   |j                  d   k(  sJ t        |      }|d   ||dz
     k(  sJ d| d| }t        |j                  d      st        |j                  d	      rd
}t        j                  t        |      5  ||    d d d        d}t        j                  t        |      5  |j                  |    d d d        y # 1 sw Y   ?xY w# 1 sw Y   y xY w)Nr   z%Test doesn't make sense on empty datarj   r;   zindex z' is out of bounds for axis 0 with size zstring[pyarrow]zstring[pyarrow_numpy]zindex out of boundsr9   z*single positional indexer is out-of-bounds)	rC   r=   skipr   ilocr   r2   r>   
IndexError)
index_flatrO   rd   rB   rG   s        r   test_access_by_positionr      s6   E
5zQ;<E]F8v{{1~%%%8v{{1~%%%9B'''u:D9dQh'''4&?v
FCekk#45,: $	z	- d
6C	z	- D   s   "D&D2&D/2D;)rT   numpyrz   r=   pandas._configr   pandas.compatr   pandas.core.dtypes.commonr   r   pandasr
   r   r   pandas._testing_testingtmr   rv   parametrizer/   rH   skipifr`   rh   NARROW_NP_DTYPESro   r~   r    r   r   <module>r      s    
   5 
  
L AA#, (&(J  !	!H8 ""5"568 78"4r   