
    Owgx"                        d dl Z d dlZd dlZd dlZd dlmZ d Z	ej                  j                  d ed      dfg df ed      dfg      d        Zej                  j                  dd	d d
 ej                  d       ej                  d      g      d        Zd Zd Zd Zej                  j                  dddgddggddgdd d gg dg ddg dfddgddggddgd ej(                  d d gd      g dg dd ej(                  g dd      fddgddggddgdej*                  j-                  d d gddggddg       g dg ddej*                  j-                  g dg d!gddg       fddgddggddgdej*                  j-                  d d gddggddg       g dg ddej*                  j-                  g dg d!gddg       fg      d"        Zd# Zd$ Zej                  j                  d% ed       ej4                  d ddej6                  ej6                  ddej6                  g ed&      e'      dd	d(d)dej6                  d*d+ej6                  gd, ed&      f ed-       ej4                  d ddej6                  ej6                  ddej6                  g ed&      e'      dg d.g d.g d.dg d*d+gd*d+gej6                  gd, ed&      fg      d/        Zd0 Zy)1    Nc                     t        j                  t        j                  g dt        j                  g dgt        d            dd      } t        j                  t        d      5  | j                  t        d	      g       d d d        t        j                  t        d
      5  | j                  t        d	             d d d        t        d	      | _
        t        j                  t        t        j                  d            5  | j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   nxY w# 1 sw Y   y xY w)Nr               abcdindexr   ABz/column must be a scalar, tuple, or list thereofmatchAAzcolumn must be uniquez:DataFrame columns must be unique. Duplicate columns: ['A']r   )pd	DataFrameSeriesnpnanlistpytestraises
ValueErrorexplodecolumnsreescape)dfs    ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_explode.py
test_errorr"   
   s    	iiBFFB7tF|LSTU
B 
K
 ! 	

DJ< !
 
z)@	A 


4: dBJ	iiTU
  	

3	 ! !
  s$   &D!%D-D9!D*-D69Ezinput_subset, error_messageACz)columns must have matching element countszcolumn must be nonemptyc           	         t        j                  g dt        j                  g dgdg ddg g dgdt	        d      	      }t        j                  t        |
      5  |j                  |        d d d        y # 1 sw Y   y xY w)Nr   r   r   abcfoo)defr   r   Cr
   r   r   )	r   r   r   r   r   r   r   r   r   )input_subseterror_messager    s      r!   test_error_multi_columnsr1      sp    & 
RVVR0!5"o>	

 6l
B 
z	7 !


< ! ! !s   A77B scalarr&   g      ?z1 daysz
2019-12-31c                    t        j                  | t        j                  g dt        j                  g dgt        d            ddi      }|j                  |       }t        j                  | t        j                  dddt        j                  t        j                  d	d
gt        d      t              ddi      }t        j                  ||       y )Nr   r   r
   r   r   r   r   r   r   r	   aaabcddr   dtype)
r   r   r   r   r   r   r   objecttmassert_frame_equal)r2   r    resultexpecteds       r!   
test_basicr<   =   s    
 
	Irvvr6:$v,OQTVWX
B ZZF||BIIAq"&&"&&!Q/tIf 		
H &(+    c                     t        j                  t        j                  g dt        j                  g dgt
              ddt         j                  j                  g d            } | j                  d      }t        j                  t        j                  d	dd
t        j                  t        j                  ddgt         j                  j                  g d      t
              dd      }t        j                  ||       y )Nr   r   r6   r   r   )r&   r   r&   r   r'   r   r'   r   r   r   r   r   r   r	   )r@   r@   r@   rA   rB   rC   rC   r5   )r   r   r   arrayr   r7   
MultiIndexfrom_tuplesr   r   r8   r9   r    r:   r;   s      r!   test_multi_index_rowsrH   Q   s    	hh	2662v6fEANmm''(PQ
B
 ZZ_F||Aq"&&"&&!Q/mm//
  !	
H( &(+r=   c                     t        j                  t        j                  g dt        j                  g dgt
              dd      } | j                  d      }t        j                  t        j                  dddt        j                  t        j                  d	d
gt        j                  g d      t
              dd      }t        j                  ||       y )Nr   r   r?   r   )r   r   )r   r   rJ   r   r   r   r	   )r   r   r   r   r   r   r   r5   )r   r   r   rD   r   r7   r   r   Indexr8   r9   rG   s      r!   test_multi_index_columnsrL   o   s    	88YF;6JVWX
B ZZ!F||iiAq"&&"&&!Q/hh45
 	
	H &(+r=   c                     t        j                  dt        d      dgdt        d      dggt        d            j	                  d	      } | j                  d
      }t        j                  g dt        j                  g dt              g ddt        d            j	                  d	      }t        j                  ||       t        j                  g dg dgg d      } | j                  | j                  j                  j                  d            j                  d      }t        j                  g dg dg dg dgg dg d      }t        j                  ||       y )N      
      r      ABC)r   r.   r   )rN   rN   rN   rN   rN   rQ   rQ   rQ   )r   r   r   r   r	   r   r   r   r?   )rP   rP   rP   rP   rP   rR   rR   rR   r-   )
2014-01-01AlicezA B)
2014-01-02BobzC D)dtnametext )rZ   rZ   )rT   rU   r   )rT   rU   r   )rV   rW   r.   )rV   rW   D)r   r   r   r   )r   r   )r   r   ranger   	set_indexr   r   rD   r7   r8   r9   assignrZ   strsplitrG   s      r!   test_usecaserb      s'    

eAh	b%(B/0$u+
in  ZZ_F||12&A1	

 U in  &(+ 
	')EF&
B YYBGGKK--c2Y3;;FCF||((&&		
 '	H &(+r=   z6input_dict, input_index, expected_dict, expected_indexr   r   r   r	   r)   bar)col1col2)r   r   r   r	   )r)   r)   rc   rc   )r   r   r   r   my_index)rY   my_first_indexmy_second_index)names)r   r   r   r   c                     t        j                  | |t              }|j                  d      }t        j                  ||t              }t	        j
                  ||       y )Nr5   rd   )r   r   r7   r   r8   r9   )
input_dictinput_indexexpected_dictexpected_indexr    r:   r;   s          r!   test_duplicate_indexro      sG    L 
j6	BBZZF||MvNH&(+r=   c                     t        j                  t        ddd      t        d      t        d      gd      } | j	                  dd	      }t        j                  g d
t        d      dg d      }t        j                  ||       y )Nr   rR   rP   abcd)idvaluesrt   T)ignore_index)r   r   rP   rP   r
   )r   r   r   r   r   )r   r   r]   r   r   r8   r9   rG   s      r!   test_ignore_indexrv      sk    	U1b"-$t*d4j9QR	SBZZtZ4F||f6lH &(+r=   c                      t        j                  ddhgdgddg      } | j                  d      j                  d      }t        j                  ddgddgdddg      }t	        j
                  ||       y )	Nxyr   )r&   r'   r   r&   )column)by)r   r   r   sort_valuesr8   r9   rG   s      r!   test_explode_setsr}      sp    	c3ZLs3A3	?BZZsZ#//3/7F||3*Aq6:1a&IH&(+r=   z+input_subset, expected_dict, expected_indexaaabcdder5   r'   r(   r*   r+   r-   r   r%   c           	      :   t        j                  g dt        j                  g dt        j                  gdg ddg ddgt        j                  gdt	        d	      
      }|j                  |       }t        j                  ||      }t        j                  ||       y )Nr   r   r   r%   r)   r*   r+   r-   abcder   )r   r   r   r   r   r   r8   r9   )r/   rm   rn   r    r:   r;   s         r!   test_multi_columnsr      s    T 
RVVR8!5"sCj"&&A	

 7m
B ZZ%F||M>:H&(+r=   c                     t        j                  ddgdgg ddggg dddgt        j                  g ddggd      } | j	                  d	d
g      }t        j                  t        j
                  dddt        j                  ddgt              g dt        j
                  ddt        j                  t        j                  ddgt              dg d      }t        j                  ||       y )Nr   r   rO   r   r   )	            r	   r-   r   r.   r?   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )	r   r   r   r   r   rD   r7   r8   r9   rG   s      r!   test_multi_columns_nan_emptyr     s    	a&1#rAq6*a&"&&"q!f-	

B ZZc
#F||1aBFFAq1@#1aA6fE	

 !H &(+r=   )r   numpyr   r   pandasr   pandas._testing_testingr8   r"   markparametrizer   r1   	Timedelta	Timestampr<   rH   rL   rb   rK   rE   from_arraysro   rv   r}   r   r   r7   r   r    r=   r!   <module>r      s   	    ( ! J7	

 %	

 J7	
"!#"! !S,",,x(,",,|*DE,	, ,<,&#,L < !fq!f%u~>F!+GH		
 !fq!f%u~>BHHaV*-!+GHBHH\
3		
 !fq!f%u~>MM%%Q!Q )9;L(M &  "+GHMM%%|,'):; & 
	
 !fq!f%u~>MM%%1v1v&6z4>P%Q!+GHMM%%|,Z4F & 		
1 #H,I#H,,, 1 JRYY1bffbffaBFF;z* 
 3UBFFCbffE 	
 IRYY1bffbffaBFF;z* 
 ####J#JFF	$ )	
$'P,Q'P,,r=   