
    i>                         d dl Zd dlZd dlmZmZmZmZm	Z	m
Z
 ej                  j                  gZd Zd Zd Zej                  j#                  ddg gddggg      d	efd
       Zy)    N)Categorical	DataFrameSeries_testingconcatread_hdfc           	      8
   t        t        g dg dd            }| j                  d|d       | j                  d      }t	        j
                  ||       t        t        g dg dd            }| j                  d	|d       | j                  d	      }t	        j
                  ||       t        |g d
d      }| j                  d|d       | j                  d      }t	        j                  ||       t        g d      j                  d      }| j                  d|       | j                  d      }t	        j
                  ||       t        ddt        j                  ddddg      j                  d      }| j                  d|       | j                  d      }t	        j
                  ||       |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        t        g dg dd            }| j                  d|d       | j                  d      }t	        j
                  ||       | 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 | j-                  d       t'        j(                  t.        d*(      5  | j                  d)       d d d        y # 1 sw Y   exY w# 1 sw Y   y xY w)+N)abr   r
   r
   cr
   r   r   dF)
categoriesorderedstable)formatT	s_ordered)                  )r   valsdf)r   r   r   r   r   r   r   categorysir   r   r   r   r   si2abcdefgs2df2z/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   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)	temp_hdfstorer   resultr   r"   r3   expectedr#   msgs	            f/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_categorical.pytest_categoricalrA      s   *+	
	A a0!!#&F1f%*+	
	A a8!!+.F1f%	$67	8Br'2!!$'F&"% 	$%,,Z8Aq!!!$'F61%1bffaAq)*11*=A"!!%(F61% '')CtI'..z:CI$!!%(F&#& D*d222*d222 	*+	
	A q1!!$'F61% #7"$$))S#J'(H!!%0@/A!BF&(+"$$))S#J'(H!!%/@!AF&(+"$$))SE"#H!!%~!>F&(+"$$))SE"#H!!%~!>F&(+ #	R	B"$$))S#J'(H!!%0@/A!BF&(+ '')C3x||446CH
QC	z	- )UC()
 !!"34F	x'V	W 0./0 0) )0 0s   T)TTTc                    ddg}ddg}ddg}t        |||d      }|j                  g d d f   }|j                  | dd	d
       t        | dd      }t	        j
                  ||       |j                  j                  d      |_        |j                  j                  d      |_        |j                  g d d f   }|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-   rG   r.   rH   )temp_h5_pathrG   rH   rI   r   r>   r=   s          r@   test_categorical_conversionrO   ~   s      !23FL)F:D 
fE	FB wwr1u~HIIlW4IHlD
;F&(+ 		  ,BI		  ,BI wwr1u~HIIlW4IHlD
;F&(+    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	<   |}|j                  | d
dd       t        | d
      }t        j                  ||       y )Nr
   r   r   )r   r   r   r   r   )dtyper   r   r   r   r   TrJ   )r   r/   r0   r   objectr
   r.   r   rM   r   r+   r-   )rN   r   r>   r=   s       r@   !test_categorical_nan_only_columnsrT      s     
sC(&&"&&"&&"&&1
&1		

B ddkk*%BsGddkk*%BsGddkk*%BsGHIIlW4IHlD)F&(+rP   zwhere, expectedqr
   r&   c                    t        dg di      }|j                  j                  d      |_        ddi}t        |j                  j	                               }t        d|i      }|j                  j                  d      |_        |j                  j
                  j                  |      |_        |j                  | dd|       t        | d| d	
      }t        j                  ||       y )Ncol)r
   r   r   r   r   r   r   )rK   r   min_itemsizezcol==""r%   )r   rW   r.   sorteduniquer5   set_categoriesrM   r   r+   r-   )rN   r&   r>   r   
max_widthscategorical_valuesr=   s          r@   test_convert_valuer_      s     
E?+	,BVV]]:&BFJ0%*+H<<&&z2HL<<##223EFHLIIlW:INlF5'*;<F&(+rP   )numpyr/   r7   pandasr   r   r   r   r+   r   r   mark
single_cpu
pytestmarkrA   rO   rT   parametrizestrr_    rP   r@   <module>rh      sw       kk$$%
k0\,8,* *c2Yse,EF,C , G,rP   