o
    %jT                  	   @   s   d dl Zd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZmZ ejjgZdd Zdd Zdd	 Zejd
dedg diedg ifdedg dieddgifgdededefddZdS )    N)Categorical	DataFrameSeries_testingconcatread_hdf)_maybe_removeensure_clean_storec           
   	   C   s6  t | }t|d ttg dg ddd}|jd|dd |d}t|| t|d ttg dg dd	d}|jd|dd |d}t|| t|d
 t|g dd}|jd
|dd |d
}t	|| t|d tg d
d}|d| |d}t|| t|d tddtjddddg
d}|d| |d}t|| t|d | }ttd
d|d< |d| |d}t	|| | }d|v sJ d|v sJ d|v sJ t|d ttg dg ddd}|jd|dd |d}t|| t|d |jd|dgd ||jddg }|jdd gd!}t	|| ||jddg }|jdd"gd!}t	|| ||jd#g }|jdd$gd!}t	|| ||jd%g }|jdd&gd!}t	|| |d| t||g}||jddg }|jdd gd!}t	|| | }|d j |d< d'}	tjt|	d( |d| W d    n	1 sw   Y  |d)}|d usJ |d tjtd*d( |d) W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )+Ns)abr   r   r   cr   r   r   dF)
categoriesorderedtable)formatZ	s_orderedTdf)                  )r
   valssi)r   r   r   r   r   r   r   categoryZsi2r   r   r   r   r   df2Zabcdefgs2z/df2   z/df2/meta/values_block_0/metaz/df2/meta/values_block_2/metadf3)data_columnsr   r   zs in ["b","c"]wherezs = ["b","c"]r   z
s in ["d"]fz
s in ["f"]zEcannot append a categorical with different categories to the existing)matchzdf3/meta/s/metaz-'No object named df3/meta/s/meta in the file')r	   r   r   r   appendselecttmZassert_series_equalr   assert_frame_equalastypenpnancopylistinfor
   isinr   catZremove_unused_categoriespytestZraises
ValueErrorremoveKeyError)

setup_pathstorer
   resultr   r   r/   expectedr    msg r;   j/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_categorical.pytest_categorical   s   
















 r$r=   c           	      C   s   ddg}ddg}ddg}t |||d}|jg d d f }| | }|j|dd	d
d t|ddd}t|| |jd|_|jd|_|jg d d f }| | }|j|dd	d
d t|ddd}t|| d S )NZESP_012345_6789ZESP_987654_3210Z
APF00006npZ
APF0001immg333333@g#@)obsidsimgidsdatar   r   Tkeyr   r!   zobsids=Br"   r   )	r   Zilocto_hdfr   r(   r)   r>   r*   r?   )	tmp_pathr6   r>   r?   r@   r   r9   pathr8   r;   r;   r<   test_categorical_conversion   s    rF   c                 C   s   t dddtjgtjtjtjtjgg dtd gd tdd}|jd|d< |jd|d< |jd|d	< |}| | }|j|d
ddd t	|d
}t
|| d S )Nr   r   r   )r   r   r   r   r   )Zdtyper   r   r   r   r   TrA   )r   r+   r,   r   objectr   r*   r   rC   r   r(   r)   )rD   r6   r   r9   rE   r8   r;   r;   r<   !test_categorical_nan_only_columns   s   
rH   zwhere, df, expectedzcol=="q"col)r   r   r
   zcol=="a"r   r#   r   r9   c           	      C   sx   |j d|_ ddi}t|j  }|j d|_ |j j||_ | | }|j|dd|d t||d}t	|| d S )Nr   rI   r   r   r   )rB   r   Zmin_itemsizer"   )
rI   r*   sorteduniquer1   Zset_categoriesrC   r   r(   r)   )	rD   r6   r#   r   r9   
max_widthsZcategorical_valuesrE   r8   r;   r;   r<   test_convert_value   s   rM   )numpyr+   r2   Zpandasr   r   r   r   r(   r   r   Zpandas.tests.io.pytables.commonr   r	   markZ
single_cpuZ
pytestmarkr=   rF   rH   ZparametrizestrrM   r;   r;   r;   r<   <module>   s*     
y