
    i              	          d dl m Z  d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZ d dlmZ  G d d      Zej"                  j%                  dddgef ej(                  d	d
d       ej*                  d      fg      d        Zej"                  j%                  dddgddgfddgddgfg      ej"                  j%                  dddg      d               Zy)    )datetimeN)	DataFrameIndex
MultiIndex
RangeIndexSeries
date_rangeoption_contextc                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestResetIndexc                 n   t        dddd      j                  d       }t        dt        j                  j                  d      j	                  t        |            i|      }|j                         }|j                  j                  d	   t        j                  d
      k(  sJ |j                  d      }t        j                  ||d       t        ddd      }t        |dggddg      }|j                  d      }|j                  d	   |k(  sJ |j                         d   j                  d	   |k(  sJ y )Nz1/1/2001z6/1/2001Dns)startendfrequnitv   indexr   zM8[ns]r   F)check_namesi        g333333(@DateValuecolumns)r	   
_with_freqr   nprandomdefault_rnglenreset_indexdtypesilocdtype	set_indextmassert_frame_equalr   r   )selfdtid1d2d3stampdfs          i/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/series/methods/test_reset_index.pytest_reset_index_dti_round_tripz.TestResetIndex.test_reset_index_dti_round_trip   s   *3T

*T
 	 RYY2215<<SXFGsS^^yy~~a BHHX$6666\\'"
b"%8 r2&0AB\\&!xx{e###~~',,Q/5888    c                    t        dt        j                  d      j                  d      z  t	        t        d      t              t	        t        d      D cg c]  }d| 	 c}t                    d d	 }|j                         }d
dg|j                  _
        d|_        |j                         }d|v sJ |j                  d      }d|v sJ |j                  d      }|}|j                  dd      }|J t        j                  ||       t        dgg dddggg dg dg dg      }t!        t        j"                  j%                  d      j'                  d      |      }|j                  d      }t)        |j*                        dk(  sJ |j                  ddgd      }t        j,                  |j                  t	        |j/                  d                   t1        |t               sJ y c c}w )Ng?x   )      ABCDr'   r7   zi-r   r      hashcategoryvaluevalue2nameTdrop)rD   inplacebar)onetwothreer      )r   r   r   r   r   r   )r   rJ   r   r   rJ   r   )r   rJ   r   rJ   r   rJ   )levelscodesr      r   levelrO   rD   )r   r    arangereshaper   listobjectrangestackr   namesrB   r$   r)   assert_series_equalr   r   r!   r"   standard_normalr#   r   assert_index_equalget_level_values
isinstance)	r+   ir1   serss2return_valuer   rss	            r2   test_reset_indexzTestResetIndex.test_reset_index&   s   "))C.((11$v,f5595a2aS5VD
 1	
 hhj!:.		__"}}__(_+2~~ OOO&~~4~>###
q"% G4q!f=%'9;MN
 299((+;;A>eL]]]#2::!###]]!Qd]3
bhhe.D.DQ.G(HI"f%%%= 6s   G4c                     t        g dt        t        d      d            }|j                         j                  j
                  J |j                  d      j                  j
                  J y )NrJ   r      rf   xrA   r   TrC   )r   r   rU   r$   r   rB   r+   r_   s     r2   test_reset_index_namez$TestResetIndex.test_reset_index_nameJ   sZ    9E%($=>}}$$))111}}$}'--22:::r4   c                 $   t        g dg dgg d      }ddgddgfD ]  }|j                  ddg      d	   }|j                  |d   
      }t        j                  ||j                  d             |j                  |d d 
      }t        j                  ||j                  d             |j                  |
      }t        j                  ||       |j                  ddg      j                  |d      }t        j                  ||d	g          t        j                  t        d      5  |j                  ddg
       d d d        |j                  d      d   }|j                  |d   
      }t        j                  ||ddg          |j                  |d d 
      }t        j                  ||ddg          |j                  |d   d      }t        j                  ||d          t        j                  t        d      5  |j                  g d
       d d d        	 t        t        d            j                  g d      }t        t        d            }t        j                  ||       y # 1 sw Y   8xY w# 1 sw Y   qxY w)Nre   )r8   r<   rM   )ABCr   rk   rl   r   rJ   rm   rN   TrP   zLevel E matchEzToo many levels)r   rJ   r   r8   rC   )r   r(   r$   r)   r*   pytestraisesKeyErrorrX   
IndexErrorr   rU   )r+   r1   rK   r_   resultexpecteds         r2   test_reset_index_levelz%TestResetIndex.test_reset_index_levelO   s>   	9-GCj1a&(  	/Fc3Z(-A]]]3F!!&",,s*;<]]]4F!!&",,s*;<]]]0F!!&"-\\3*-99T9RF!!&"cU)4xz: 0S#J/0 S!#&A]]]3F!!&"c3Z.9]]]4F!!&"c3Z.9]]]>F""62c73z1BC /I./ /? 	/F a!--bt-<%(#
vx0+0 0/ /s   -I8J8J	J	c                     t        t        d      dd      }|j                         }t        |j                  t
              sJ t        ddgddggddgt        d      	      }t        j                  ||       y )
Nr   rk   int64)rB   r'   r   rJ   r   )stopr;   )	r   rU   r$   r\   r   r   r   r)   r*   )r+   r_   series_resultseries_expecteds       r2   test_reset_index_rangez%TestResetIndex.test_reset_index_rangey   sn    58#W5---z:::#VaVwnJA<N
 	m_=r4   c                    t        t        d            }t        j                  t        d      5  |j                  dd       d d d        t        j                  t        d      5  |j                  d       d d d        t        t        d      t        j                  ddggdz        	      }t        j                  t        d
      5  |j                  dd       d d d        y # 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   y xY w)Nr8   zdoes not match index namern   wrongTrC   rJ   r   r   z	not found)r   rU   rq   rr   rs   r$   r   from_productrh   s     r2   test_reset_index_drop_errorsz+TestResetIndex.test_reset_index_drop_errors   s     58]]8+FG 	.MM'M-	.]]8+FG 	#MM'"	# 58:#:#:QF8a<#HI]]8;7 	.MM'M-	. 	.	. 	.	# 	#
	. 	.s#   C('C4D (C14C= D	c                    g dg dg}t        |ddi}t        j                  |      }t        j                  j                  d      j                  d      }t        ||      }t        j                  |j                  d<   |j                         }t        |t              sJ t        |j                        t        |j                  j                         d	z   k(  sJ |j                  j"                  |j                  j"                  k(  sJ |j                  d
      }t        |t              sJ |j                  j"                  |j                  j"                  k(  sJ y )N)rF   rF   bazr   quxr   foor   )rG   rH   rG   rH   rG   rH   rG   rH   strictTr      r   rf   rJ   rC   )zipr   from_tuplesr    r!   r"   rY   r   nanr&   r$   r\   r   r#   r   r   rK   rB   )r+   arraystuplesr   datar^   	deleveleds          r2   test_reset_index_with_dropz)TestResetIndex.test_reset_index_with_drop   s   DD
 f*T*&&v.yy$$Q'77:T'ffOO%	)Y///9$$%SYY-=-=)>)BBBB##syy~~555OOO.	)V,,,##syy~~555r4   c                     t        t        d      d      }|j                  ddd       t        t        d      d      }t        j                  ||       y )Nr   oldrA   newT)rB   rD   rE   )r   rU   r$   r)   rX   )r+   r^   rv   s      r2   -test_reset_index_inplace_and_drop_ignore_namez<TestResetIndex.test_reset_index_inplace_and_drop_ignore_name   sD    U1XE*Ut<%(/
sH-r4   c                     t        j                  d       t        g dt              }t	        dd      5  |j                  d      }d d d        t        j                  |       y # 1 sw Y    xY w)Npyarrow)abcr:   zfuture.infer_stringTrC   )rq   importorskipr   rT   r
   r$   r)   rX   )r+   r^   ru   s      r2   "test_reset_index_drop_infer_stringz1TestResetIndex.test_reset_index_drop_infer_string   s\    I&_F3148 	0__$_/F	0
vs+	0 	0s   A''A0N)__name__
__module____qualname__r3   rc   ri   rw   r}   r   r   r   r    r4   r2   r   r      s1    9$"&H;
(1T>.6(.,r4   r   zarray, dtyper   r   z	12-1-2000r   zQ-DEC)periodsr   )r   c                 J   t        j                  ddgddg| g      }t        t        |      d d j	                         j
                  }|rdnt        }t        t        j                  t        j                  |t        k(  r|n|t        d      }t        j                  ||       y )Nr   rJ   g      ?g      ?)r'   r   str)level_0level_1level_2r   )r   r   r   rT   r$   r%   r    ry   float64r)   rX   )arrayr'   using_infer_stringidxru   exprv   s          r2   7test_reset_index_dtypes_on_empty_series_with_multiindexr      s     
!
!Aq6C:u"=
>C&,Ra0<<>EEF%%6Cxxzz#vos5		
H 68,r4   znames, expected_namesrk   r   allow_duplicatesFTc                 P   t        dgt        j                  dgdgg|             }|r=|j                  d      }t	        g dgg |d      }t        j                  ||       y t        j                  t        d	
      5  |j                          d d d        y # 1 sw Y   y xY w)NrJ   )rW   r   T)r   )rJ   rJ   rJ   r   r   zcannot insertrn   )
r   r   from_arraysr$   r   r)   r*   rq   rr   
ValueError)rW   expected_namesr   r_   ru   rv   s         r2   test_column_name_duplicatesr      s     	s*001#s5IJA5i[2FN2FA2FG
fh/]]:_= 	MMO	 	 	s   BB%)r   numpyr    rq   pandaspdr   r   r   r   r   r	   r
   pandas._testing_testingr)   r   markparametrizerT   period_rangePeriodDtyper   r   r   r4   r2   <module>r      s          `, `,F 
sVBOOKABNN(	
	-	-$ 
sc3Z 
T	Y	23 +eT];	 <	r4   