
    Oho                     t    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	 d dl
mZ d dlZd dlmZ  G d d      Zy)    N)np_version_gt2)'construct_1d_object_array_from_listlike)is_extension_array_dtype)ExtensionDtypec                   j    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zy)BaseInterfaceTestsz,Tests that the basic interface is satisfied.c                 $    t        |      dk(  sJ y Nd   )lenselfdatas     m/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/pandas/tests/extension/base/interface.pytest_lenzBaseInterfaceTests.test_len   s    4yC    c                 &    |j                   dk(  sJ y r
   )sizer   s     r   	test_sizezBaseInterfaceTests.test_size   s    yyCr   c                 &    |j                   dk(  sJ y )N   )ndimr   s     r   	test_ndimzBaseInterfaceTests.test_ndim   s    yyA~~r   c                 $    |j                   du sJ y )NT)_can_hold_nar   s     r   test_can_hold_na_validz)BaseInterfaceTests.test_can_hold_na_valid    s      D(((r   c                    |j                   j                  }||j                             }|d   |v sJ |d   |v sJ ||v sJ ||vsJ t        j                  D ]*  }||u st        |      t        |      k(  r||vsJ ||vr*J  y )Nr   )dtypena_valueisnatmNULL_OBJECTStype)r   r   data_missingr   na_value_objs        r   test_containsz BaseInterfaceTests.test_contains$   s     ::&&TYY[L! Aw$A,... <'''t### OO 	4Lx'4+=h+Ot+++|333	4r   c                 t    t        j                  |      }|j                  d      }||j                  k(  sJ y )NF)index)pdSeriesmemory_usagenbytes)r   r   sresults       r   test_memory_usagez$BaseInterfaceTests.test_memory_usage>   s1    IIdOe,!!!r   c                 8   t        j                  |      }|d   |d   k(  sJ t        j                  |t              }t        j                  t        |      t              }|j                  dkD  rt        t        |            }t        j                  ||       y )Nr   r   r   )nparrayobjectlistr   r   r!   assert_numpy_array_equalr   r   r.   expecteds       r   test_array_interfacez'BaseInterfaceTests.test_array_interfaceC   ss    $ayDG###$f-88DJf5==1>tDzJH
##FH5r   c                    t        j                  |d      }t        j                  |d      }t        j                  ||      rJ t        sy d}d}t	        j
                  d      5 }t	        j                  d       t        j                  |d      }t        |      dk  sJ t        |      rd}|t        |d   j                        v sJ d d d        t	        j
                  d      5 }t	        j                  d       t        j                  |d      }t        |      dk  sJ t        |      rd}|t        |d   j                        v sJ d d d        |st        j                        sJ y y # 1 sw Y   xY w# 1 sw Y   1xY w)	NT)copyFzGStarting with NumPy 2.0, the behavior of the 'copy' keyword has changed)recordalwaysr   r   )
r2   r3   may_share_memoryr   warningscatch_warningssimplefilterr   strmessage)	r   r   result_copy1result_copy2warning_raisedmsgwresult_nocopy1result_nocopy2s	            r   test_array_interface_copyz,BaseInterfaceTests.test_array_interface_copyN   s^   xx40xx40&&|\BBBW$$D1 	0Q!!(+XXd7Nq6Q;;1v!%c!A$,,////	0 $$D1 	0Q!!(+XXd7Nq6Q;;1v!%c!A$,,////	0 &&~~FFF !	0 	0	0 	0s   (A&E6,A&F6E?Fc                     t        |      sJ t        |j                        sJ t        t        j                  |            sJ t	        |j                  t
              sJ y N)r   r   r)   r*   
isinstancer   r   s     r   test_is_extension_array_dtypez0BaseInterfaceTests.test_is_extension_array_dtypem   sL    '---'

333'		$888$**n555r   c                 <    t        |d      rJ t        |d      rJ y )Nvalues_values)hasattrr   s     r   test_no_values_attributez+BaseInterfaceTests.test_no_values_attributes   s'     4***4++++r   c                     t        j                  |      }t        |j                  d      r<|j                  j                  d   j
                  |j                  j                  u sJ y y )Nblocksr   )r)   r*   rS   _mgrrV   
is_numericr   _is_numericr   r   r.   s      r   test_is_numeric_honoredz*BaseInterfaceTests.test_is_numeric_honoredy   sO    46;;);;%%a(33tzz7M7MMMM *r   c                     |j                         }t        |      rc|j                  d      sJ |j                         sJ |j                  d      rJ |j	                         rJ |j
                  j                  sJ y y )Nanyall)r    r   _reducer]   r^   r   _is_boolean)r   r$   nas      r   test_isna_extension_arrayz,BaseInterfaceTests.test_isna_extension_array~   sq      #B'::e$$$668O8zz%(((vvx<88'''' (r   c                     |d   |d   k7  sJ |j                         }|j                  j                  r#t        j                  d|j                   d       |d   |d<   |d   |d   k7  sJ y )Nr   r   z!test_copy assumes mutability and  is immutable)r;   r   _is_immutablepytestskiprZ   s      r   	test_copyzBaseInterfaceTests.test_copy   sm    Aw$q'!!!::##KK;DJJ<}UVq'QayF1I%%%r   c                 <   |d   |d   k7  sJ |j                         }||usJ t        |      t        |      k(  sJ |j                  j                  r#t	        j
                  d|j                   d       |d   |d<   |d   |d   k(  sJ |j                  d        y )Nr   r   z!test_view assumes mutability and rd   r1   )viewr#   r   re   rf   rg   rZ   s      r   	test_viewzBaseInterfaceTests.test_view   s     Aw$q'!!!T!!!F|tDz)))::##KK;DJJ<}UV1Iq	Aw$q'!!! 				r   c                 l    |j                         }t        |      }t        |t              sJ ||k(  sJ y rM   )tolistr5   rN   r7   s       r   test_tolistzBaseInterfaceTests.test_tolist   s4    :&$'''!!!r   N)__name__
__module____qualname____doc__r   r   r   r   r&   r/   r9   rK   rO   rT   r[   rb   rh   rk   rn    r   r   r   r      sR    6  )44"
	6G>6,N
(	&$"r   r   )r?   numpyr2   rf   pandas.compat.numpyr   pandas.core.dtypes.castr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandasr)   pandas._testing_testingr!   r   rs   r   r   <module>r|      s,       . K > 4  \" \"r   