
    OwgR              
       .   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                  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y)    N)Categorical	DataFrameSeries_testingconcatread_hdf)_maybe_removeensure_clean_storec           
      8   t        |       5 }t        |d       t        t        g dg dd            }|j	                  d|d       |j                  d      }t        j                  ||       t        |d       t        t        g dg dd	            }|j	                  d|d       |j                  d      }t        j                  ||       t        |d
       t        |g dd      }|j	                  d
|d       |j                  d
      }t        j                  ||       t        |d       t        g d      j                  d      }|j	                  d|       |j                  d      }t        j                  ||       t        |d       t        ddt        j                  ddddg      j                  d      }|j	                  d|       |j                  d      }t        j                  ||       t        |d       |j                         }t        t        d            j                  d      |d<   |j	                  d|       |j                  d      }t        j                  ||       |j                         }d|v sJ d|v sJ d|v sJ t        |d       t        t        g dg dd            }|j	                  d|d       |j                  d      }t        j                  ||       t        |d       |j	                  d|dg       ||j                   j#                  ddg         }|j                  dd g!      }t        j                  ||       ||j                   j#                  ddg         }|j                  dd"g!      }t        j                  ||       ||j                   j#                  d#g         }|j                  dd$g!      }t        j                  ||       ||j                   j#                  d%g         }|j                  dd&g!      }t        j                  ||       |j	                  d|       t%        ||g      }||j                   j#                  ddg         }|j                  dd g!      }t        j                  ||       |j                         }|d   j&                  j)                         |d<   d'}	t+        j,                  t.        |	(      5  |j	                  d|       d d d        |j                  d)      }|J |j1                  d       t+        j,                  t2        d*(      5  |j                  d)       d d d        d d d        y # 1 sw Y   mxY w# 1 sw Y   xY w# 1 sw Y   y xY w)+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/horilla/myenv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_categorical.pytest_categoricalrD      s   	J	' u,5eS!./
 	S!G,c"
q&)e[)./
 	[!G4k*
q&)eT"Q(:;<T2g.d#
fb) 	eT"()00<T1d#
vq)eU#Aq"&&!Q1-.55jAUAe$
vq) 	eU#ggi4	?+22:>D	UC e$
fc* zz|D   .$666.$666 	eT"./
 	T1W-d#
vq) 	eU#UBcU3bddiic
+,e,<+=>
fh/bddiic
+,eO+<=
fh/bddii&'eL>:
fh/bddii&'eL>:
fh/ 	UBRHbddiic
+,e,<+=>
fh/ ggis8<<88:CU]]:S1 	%LL$	%
 /0!!!U]]K
 	, LL*+	,eu, u,R	% 	%	, 	,eu, u,s=   S-V9U8A	VV'V8V	=VV		VVc                    ddg}ddg}ddg}t        |||d      }|j                  g d d f   }| |z  }|j                  |dd	d
       t        |dd      }t	        j
                  ||       |j                  j                  d      |_        |j                  j                  d      |_        |j                  g d d f   }| |z  }|j                  |dd	d
       t        |dd      }t	        j
                  ||       y )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      s     !23FL)F:D 
fE	FB wwr1u~Hj DIIdW4I@dD
3F&(+ 		  ,BI		  ,BI wwr1u~Hj DIIdW4I@dD
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
                  j                  d      |d<   |j                  j                  d      |d<   |j                  j                  d      |d	<   |}| |z  }|j                  |d
dd       t        |d
      }t        j                  ||       y )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		

B ddkk*%BsGddkk*%BsGddkk*%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                   j                  d      |_         ddi}t        |j                   j                               }|j                   j                  d      |_         |j                   j                  j                  |      |_         | |z  }|j                  |dd|       t        ||      }t        j                  ||       y )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     VV]]:&BFJ0<<&&z2HL<<##223EFHLj DIIdW:I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,r,<,, 	Y78)UBK:PQ	Y78)USEN:ST,!$,*3,?H,,rT   