
    EgR              
       8   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        Zd Zd Z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            ZdS )    N)Categorical	DataFrameSeries_testingconcatread_hdf)_maybe_removeensure_clean_storec           
         t          |           5 }t          |d           t          t          g dg dd                    }|                    d|d           |                    d          }t          j        ||           t          |d           t          t          g dg dd	                    }|                    d|d           |                    d          }t          j        ||           t          |d
           t          |g dd          }|                    d
|d           |                    d
          }t          j	        ||           t          |d           t          g d          
                    d          }|                    d|           |                    d          }t          j        ||           t          |d           t          ddt          j        ddddg          
                    d          }|                    d|           |                    d          }t          j        ||           t          |d           |                                }t          t          d                    
                    d          |d<   |                    d|           |                    d          }t          j	        ||           |                                }d|v sJ d|v sJ d|v sJ t          |d           t          t          g dg dd                    }|                    d|d           |                    d          }t          j        ||           t          |d           |                    d|dg           ||j                            ddg                   }|                    dd g!          }t          j	        ||           ||j                            ddg                   }|                    dd"g!          }t          j	        ||           ||j                            d#g                   }|                    dd$g!          }t          j	        ||           ||j                            d%g                   }|                    dd&g!          }t          j	        ||           |                    d|           t%          ||g          }||j                            ddg                   }|                    dd g!          }t          j	        ||           |                                }|d         j                                        |d<   d'}	t+          j        t.          |	(          5  |                    d|           d d d            n# 1 swxY w Y   |                    d)          }|J |                    d           t+          j        t2          d*(          5  |                    d)           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )+Ns)abr   r   r   cr   r   r   dF)
categoriesorderedtable)format	s_orderedTdf)                  )r   valssi)r   r   r   r   r   r   r   categorysi2r   r   r   r   r   df2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tmassert_series_equalr   assert_frame_equalastypenpnancopylistinfor   isinr   catremove_unused_categoriespytestraises
ValueErrorremoveKeyError)

setup_pathstorer   resultr   r"   r5   expectedr%   msgs
             ^/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/io/pytables/test_categorical.pytest_categoricalrD      s1   	J	'	' u,5eS!!!...///  
 
 	S!G,,,c""
q&)))e[)))...///  
 
 	[!G444k**
q&)))eT"""Q(:(:(:;;<<T2g...d##
fb))) 	eT"""((())00<<T1d##
vq)))eU###Aq"&!Q1-..55jAAUAe$$
vq))) 	eU###ggii4	??++22:>>D	UC   e$$
fc*** zz||D    .$6666.$6666 	eT"""...///  
 
 	T1W---d##
vq))) 	eU###UBcU333bdiic
++,e,<+=>>
fh///bdiic
++,eO+<==
fh///bdii&&'eL>::
fh///bdii&&'eL>::
fh/// 	UBRHbdiic
++,e,<+=>>
fh/// ggiis8<88::CU]:S111 	% 	%LL$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%
 /00!!!U]K
 
 
 	, 	, LL*+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,eu, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u,s[   V%Y&5WY&W	Y&W	 AY&,YY&Y	Y&Y	Y&&Y*-Y*c                    ddg}ddg}ddg}t          |||d          }|j        g d d f         }| |z  }|                    |dd	d
           t          |dd          }t	          j        ||           |j                            d          |_        |j                            d          |_        |j        g d d f         }| |z  }|                    |dd	d
           t          |dd          }t	          j        ||           d S )NESP_012345_6789ESP_987654_3210
APF00006np
APF0001immg333333@g#@)obsidsimgidsdatar   r   Tkeyr   r&   zobsids=Br'   r    )	r   ilocto_hdfr   r-   r/   rJ   r0   rK   )	tmp_pathr>   rJ   rK   rL   r   rA   pathr@   s	            rC   test_categorical_conversionrS      s1     !23FL)F:D 
fEE	F	FB wr111u~Hj DIIdW4I@@@dD
333F&(+++ 	  ,,BI	  ,,BI wr111u~Hj DIIdW4I@@@dD
333F&(+++++    c           	         t          dddt          j        gt          j        t          j        t          j        t          j        gg dt          d gdz  t                    d          }|j                            d          |d<   |j                            d          |d<   |j                            d          |d	<   |}| |z  }|                    |d
dd           t          |d
          }t          j        ||           d S )Nr   r   r   )r   r   r   r   r   )dtyper   r    r   r   r   TrM   )r   r1   r2   r   objectr   r0   r   rP   r   r-   r/   )rQ   r>   r   rA   rR   r@   s         rC   !test_categorical_nan_only_columnsrX      s     
sC(&"&"&"&1
&111		
 	

 
B dkk*%%BsGdkk*%%BsGdkk*%%BsGHj DIIdW4I@@@dD!!F&(+++++rT   zwhere, df, expectedzcol=="q"col)r   r   r   zcol=="a"r   r(   r   rA   c                    |j                             d          |_         ddi}t          |j                                                   }|j                             d          |_         |j         j                            |          |_         | |z  }|                    |dd|           t          ||          }t          j	        ||           d S )Nr    rY   r   r   r   )rN   r   min_itemsizer'   )
rY   r0   sorteduniquer7   set_categoriesrP   r   r-   r/   )	rQ   r>   r(   r   rA   
max_widthscategorical_valuesrR   r@   s	            rC   test_convert_valuera      s     V]]:&&BFJ00<&&z22HL<#223EFFHLj DIIdW:IFFFd%(((F&(+++++rT   )numpyr1   r9   pandasr   r   r   r   r-   r   r   pandas.tests.io.pytables.commonr	   r
   mark
single_cpu
pytestmarkrD   rS   rX   parametrizestrra    rT   rC   <module>rk      s                             
 [#
v, v, v,r, , ,<, , ,, 	YY788))UBK:P:PQ	YY788))USEN:S:ST ,!$,*3,?H, , , , , ,rT   