
    .i:              
       f   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
mZmZmZmZmZmZmZ d dlmZ d Zd Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$ejJ                  jM                  dddg      ejJ                  jM                  ddd  ed       g      d               Z'd Z(d Z)ejJ                  jM                  d e
dd       e
dd      g e
dd       e
dd      dgd d gd d ejT                  gf e
dd       e
dd      g e
dd       e
dd      gd d gd d gfg      d!        Z+d" Z,d# Z-d$ Z.ejJ                  jM                  d%d&gd'ggg g gg      d(        Z/d) Z0d* Z1ejJ                  jM                  dd+d,g      d-        Z2ejJ                  jM                  d.g d/      d0        Z3y)1    N)NACategoricalFloat64DtypeIndex
MultiIndexNaTPeriodPeriodIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeisnac                 X   |j                  |j                        }t        j                  |j                  |j                        sJ |j                  j	                  |j                        sJ |j                  j                  |j                        sJ |j                  dd }|j                  |      }|j                         D ]  \  }}|||   k(  rJ  | j                  dd }| j                  |      }|j                         D ]  \  }}|| |   k(  rJ  | j                  |      }	t        j                  |	      j                         sJ | j                  d d d   }
| j                  |
      }|j                         D ]  \  }}|| |   k(  rJ  | j                         }|| usJ y )N
         )
reindexindextmshares_memoryis_	identicalitemsnpisnanall)datetime_seriesstring_seriesidentitysubIndex	subSeriesidxval	subIndex2subTSstuffSeriesnonContigIndexsubNonContigresults                f/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/series/methods/test_reindex.pytest_reindexr-      s   $$]%8%89HM//@@@>>m11222>>##M$7$7888""2b)H%%h/IOO% )SmC(((()  %%b,I##I.EKKM +Soc****+!))(3K88K $$&&& %**3Q3/N"**>:L &&( +Soc****+ $$&F(((    c                     t        g dddt        j                  dg      } t        j                  dt        j                  ddt        j                  gg d}}t        j                  | j                  |      | j                  |          | j                  j                  d      | _        t        j                  | j                  |      | j                  |   d	       y )
N)r                     r   )r   r   r   r0   r3   r   objectF)check_index_type)	r   r   nanr   assert_series_equalr   ilocr   astype)tsijs      r,   test_reindex_nanr@   9   s    	Q2661$5	6BFFArvvq!RVV,.@qA2::a="''!*5xxx(BH 2::a="''!*uMr.   c                  H   t        ddd      } t        |       }|j                  t        d            }t	        j
                  |j                  t	        j                  d            sJ |j                         }|dd  j                         sJ |d d j                         rJ y )Nz1/1/2000 00:00:00r   10s)periodsfreq   zM8[ns])
r   r   r   ranger   
issubdtypedtyper   r   any)rngseriesr+   masks       r,   test_reindex_series_add_natrN   E   s    
("5
ACC[F^^E"I&F==rxx'9:::;;=D9==??CRy}}r.   c                     t        dd      } t        t        j                  j	                  d      j                  d      |       }|j                  t        |j                  dd             }|dd }|j                  j                  d       |_        t        j                  ||       |t        |j                  dd          }t        j                  ||       y )Nz1/1/2000r   rC   r   r6   r1   r   )r   r   r   randomdefault_rngstandard_normalr   listr   
_with_freqr   r:   )rK   r=   r+   expecteds       r,   test_reindex_with_datetimesrW   Q   s    
Z
,C			%%a(88<C	HBZZRXXa^,-F!BxH^^..t4HN68,RXXa^$%F68,r.   c                    t        g       }|j                  | j                  d       |j                  | j                  d      }| j                  t        | j                              }| j                  j	                  d       | _        t        j                  | |       | d d d   }d}t        j                  t        |      5  |j                  | j                  d       d d d        y # 1 sw Y   y xY w)Nr6   padmethodr   zVInvalid fill method\. Expecting pad \(ffill\), backfill \(bfill\) or nearest\. Got foomatchfoo)
r   r   r   rT   rU   r   r:   pytestraises
ValueError)r   empty	reindexedr=   msgs        r,   test_reindex_cornerre   ^   s    E	MM/''M6 o33EBI  ''_-B-B(CDI+11<<TBO?I6 
1	B	*  
z	- 8


?((
78 8 8s   C--C6c                  :   t        t        j                  d      d      } | d d d   }|j                  | j                  d      }|j                  | j                  d      }t        j                  ||       t        g d      }t        j                  ||       y )	Nr   int64rI   r   rY   rZ   ffill)
r   r   r   r   r4   r4      rj   r5   r5   )r   r   aranger   r   r   r:   )ss2rc   
reindexed2rV   s        r,   test_reindex_padro   u   sz    ryy}G,A	
3Q3B

1775
1IAGGG4J9j145H9h/r.   c                     t        g dg d      } g d}t        g d|      }| j                  |      j                         }t        j                  ||       | j                  |      j                         }t        j                  ||       t        g d|      }| j                  |d      }t        j                  ||       y )	Nr3   r   r0   r4   r1   )abcder6   )rr   grt   f)r3   r3   r0         @)r3   r1   r0   r1   ri   rZ   )r   r   ri   r   r:   )rl   	new_indexrV   r+   s       r,   test_reindex_pad2r{      s    &?@A$InI6H YYy!'')F68,YYy!'')F68,l)4HYYyY1F68,r.   c                      t        g dt        d            } d}| j                  t        |            j                         }t        g dt        |      t              }t        j                  ||       y )N)TFFTabcdr6   agc)TTFr   rI   )r   rT   r   ri   r7   r   r:   )rl   rz   r+   rV   s       r,   test_reindex_inferencer      sV    )f>AIYYtI'--/F)iOH68,r.   c                      t        dt        d            } | j                  d      j                         }t        dt        d      t              }t        j                  ||       y )NFr1   r6   r3   r   )r   rG   shiftbfillr7   r   r:   )rl   r+   rV   s      r,   test_reindex_downcastingr      sJ    uE!H%AWWQZFe586:H68,r.   c                  :   t        t        j                  dd            } g d}| j                  |d      }t        t        j                  |      j                  d      |      }t        j                  ||       | j                  |dd      }t        d	d
t        j                  dg|      }t        j                  ||       | j                  |dg d      }t        d	t        j                  t        j                  dg|      }t        j                  ||       y )Nr   rg   rh   )g?g?g      ?       @nearestrZ   g?)r[   	tolerancer   r3   r   )g333333?g{Gz?g?r0   )	r   r   rk   r   aroundr<   r   r:   r9   )rl   targetr+   rV   s       r,   test_reindex_nearestr      s    ryy7+,A!FYYviY0Fbii'..w7@H8V,YYvi3Y?Fq!RVVQ'0H8V,YYvi;NYOFq"&&"&&!,f5H8V,r.   c                    | d d d   }t        t        j                  t        |      t              |j
                        }|j                  | j
                        }|j                  t        j                  k(  sJ |j                  |j
                  d d d         }|j                  t        j                  t              k(  sJ y Nr   rh   r6   )	r   r   zeroslenintr   r   rI   float64)r   r=   int_tsreindexed_ints       r,   test_reindex_intr      s    	1	BBHHSWC0AF NN?#8#89M "**,,, NN6<<!#45M"((3-///r.   c                 z   | d d d   }t        t        j                  t        |      t              |j
                        }|j                  | j
                        }|j                  t        j                  k(  sJ |j                  |j
                  d d d         }|j                  t        j                  k(  sJ y r   )
r   r   r   r   boolr   r   rI   object_bool_)r   r=   bool_tsreindexed_bools       r,   test_reindex_boolr      s    	1	BRXXc"gT2"((CG ___%:%:;N 2::--- __W]]3Q3%78N288+++r.   c                     | dd  }t        t        j                  t        |      t              |j
                        }|j                  | j
                  d      }t        |d d       j                         sJ y )Nr1   rh   r6   rY   rZ   )	r   r   r   r   r   r   r   r   r   )r   r=   r   filled_bools       r,   test_reindex_bool_padr      sb    		BRXXc"gT2"((CG///"7"7/FKBQ $$&&&r.   c                  z   t        dd      } t        g dd      }|j                  |       }t        t        t        j
                  t        j
                  t        j
                  gg d            }| |_        t        j                  ||       t        t        dd	gg d      t        d
d            }|j                  d
dg      }t        j                  ||       t        t        d	t        j
                  gg d      t        dd            }|j                  ddg      }t        j                  ||       y )N20000101r0   rP   rr   rs   rt   categoryrh   )values
categoriesrs   rt   r3   r6   r   r4   )
r   r   r   r   r   r9   r   r   r:   rG   )r   rl   r+   rV   s       r,   test_reindex_categoricalr      s    z1-E 	j1AYYuFBFFBFFBFF3PH HN68, C:/B%PQST+H YY1vF68,C=_EUSTVW[H YY1vF68,r.   c                  &   t        g dg d      } g d}d}t        }| j                  |      j                  |      j                  |      }| j                  |      j                  |      j                  |      }t	        j
                  ||       y )Nr3   r   r0   )r   r   r3   r6   )r   r3   r   r   )r   strr   r<   r   r:   )serrz   
temp_dtype	new_dtyper+   rV   s         r,   %test_reindex_astype_order_consistencyr      su    
)
,CIJI[[#**:6==iHFzz*%--i8??	JH68,r.   c                     t        g d      } | j                  g d      }t        ddt        j                  gt	        dd            }t        j                  ||       | j                  g dd	      }t        g d
t	        dd            }t        j                  ||       t        g d      }|j                  g d      }t        ddt        j                  gt	        dd            }t        j                  ||       |j                  g dd	      }t        g dt	        dd            }t        |j                  j                  t        j                        sJ t        j                  ||       t        g dt              }|j                  g d      }t        ddt        j                  gt	        dd      t              }t        j                  ||       |j                  g dd	      }t        g dt	        dd      t              }t        j                  ||       t        g d      }|j                  g d      }t        ddt        j                  gt	        dd      t              }t        j                  ||       |j                  g dd	      }t        g dt	        dd            }t        j                  ||       y )N)      ?r   ry   r   r   ry   r3   r4   r6   r   
fill_value)r   ry   r   )r   r0   r   rh   r   r0   r   r^   )r   r0   r^   )TFTFT)FTF)r   r   r   r9   rG   r   r:   
issubclassrI   typeintegerr7   )floatsr+   rV   intsobjectsboolss         r,   test_reindex_fill_valuer      s    O$F^^I&FsC(a<H68,^^I!^4Fm5A;7H68, )D\\)$FsC(a<H68, \\)\2FiuQ{3Hfll''44468, Yf-G__Y'Fq!RVVnE!QKvFH68,__Y5_9Fm5A;fEH68, &'E]]9%FudBFF+5A;fMH68,]]9]7F*%1+>H68,r.   rI   zdatetime64[ns]timedelta64[ns]r   stringc                     | dk(  r|t        d      k(  rt        d      }t        t        g|       }|j	                  ddg|      }t        t        |gt        d      t              }t        j                  ||       y )Nr   r   rh   r3   r   r   r   )	r   r   r   r   r   rG   r7   r   r:   )rI   r   r   r+   rV   s        r,   +test_reindex_fill_value_datetimelike_upcastr   3  sl     !!jIaL&@q\

#e
$C[[!QJ[7FsJ'uQxvFH68,r.   c                      t        dddd      } t        dddd	      }t        t        d      | 
      }d}t        j                  t
        |      5  |j                  |d       d d d        y # 1 sw Y   y xY w)N20131101zAmerica/Chicagor2   ns)tzrC   unit20131103r   h)rC   rD   r   r6   zLCannot compare dtypes datetime64\[ns, America/Chicago\] and datetime64\[ns\]r\   ri   rZ   )r   r   rG   r_   r`   	TypeErrorr   )r$   newidxrl   rd   s       r,   /test_reindex_datetimeindexes_tz_naive_and_awarer   B  sr    
Z$5qt
LC
BStDFuQxs#A	   
y	, *			&	)* * *s   A//A8c                      t        d      j                  ddg      } t        t        gdz  d      }t        j                  | |       y )Nzdatetime64[ns, UTC]rh   r   r3   r   )r   r   r   r   assert_equal)r+   rV   s     r,   "test_reindex_empty_series_tz_dtyper   O  s=    /088!Q@Fseai'<=HOOFH%r.   z+p_values, o_values, values, expected_values2019Q1zQ-DEC2019Q2Allr   c                     t        |       }t        |      }t        ||      }|j                  |      }t        ||      }t	        j
                  ||       y )Nr6   )r
   r   r   r   r   r:   )	p_valueso_valuesr   expected_valuesperiod_indexobject_indexr   r+   rV   s	            r,   $test_reindex_periodindex_with_objectr   V  sM    & x(L?L
|
,C[[&Fo\:H68,r.   c                      t        ddg      } d}t        j                  t        |      5  | j	                  ddgd       d d d        y # 1 sw Y   y xY w)Nr3   r   zCreindex\(\) takes from 1 to 2 positional arguments but 3 were givenr\   r0   Fr   r_   r`   r   r   r   rd   s     r,   test_reindex_too_many_argsr   r  sI    
!Q.C
PC	y	, #QFE"# # #s   A		Ac                      t        ddg      } d}t        j                  t        |      5  | j	                  ddgddg       d d d        y # 1 sw Y   y xY w)Nr3   r   z4reindex\(\) got multiple values for argument 'index'r\   r0   r4   r6   r   r   s     r,   test_reindex_double_indexr   z  sO    
!Q.C
AC	y	, *QF1a&)* * *s   AAc                      t        ddg      } | j                  ddg      }t        ddgddg      }t        j                  ||       y )Nr3   r   r   r6   )r   r   r   r:   )r   r+   rV   s      r,   test_reindex_no_posargsr     sG    
!Q.C[[1v[&Fq!fQF+H68,r.   r   rr   xc                 *   t        t        t        | d               t        j                  |       d      }|j                  t        j                  dg      d      }t        t        dg| d   gg g g      d      }t        j                  ||       y )Nr   r7   r   rs   )levelr3   )levelscodes)
r   rG   r   r   from_arraysr   r   arrayr   r:   )r   r   r+   rV   s       r,   test_reindex_empty_with_levelr     s     c&)nZ%;%;F%C8C [[3%[2F#q	 22r(C8H 68,r.   c                      t        g dd      } d}t        j                  t        |      5  | j	                  g dd       d d d        y # 1 sw Y   y xY w)	N)r3   r   r0   r3   r   rh   z:Cannot setitem on a Categorical with a new category \(-1\)r\   rq   r   r   r   s     r,   test_reindex_missing_categoryr     sF    
Z
0C
GC	y	, 4O34 4 4s   AAc                     t        dt        gt                     } | j                  t	        d            }|j
                  j                  }t        j                  dt        j                  t        j                  g      }t        j                  ||       t        j                  d       5  t        j                  |      }t        dt        t        gt                     }t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr   rh   r0   r3   r   )r   r   r   r   rG   r   _datar   r   r9   r   assert_numpy_array_equalassert_produces_warninglogr:   )rl   	s_reindexr+   rV   
result_logexpected_logs         r,   #test_reindexing_with_float64_NA_logr     s    Ry/A		%(#I##FxxBFFBFF+,H1		#	#D	) 9VVI&
q"bk@
z<89 9 9s   +AD  D	timedelta64
datetime64c           
          t        t        j                  dg|  d            }|j                  t	        d            }t        t        j                  d t        t        |       dd      g|  d            }t        j                  ||       y )Nr3   z[s]rh   r   natrl   )r   r   r   r   r   getattrr   r:   )rI   r   r+   rV   s       r,   test_reindex_expand_nonnano_natr     sy     1#wc]3
4C[[A'F
!'WR's34ugSMJH 68,r.   zname, expected_match_level_a))rr   T)NF)r   Fc           	      *   t        ddgt        ddg|             }t        j                  ddgt        j
                  gddggg d	
      }|j                  |      }|rHt        g dt        j                  ddgt        j
                  gddggg d	
      |j                        }nWt        t        j
                  gdz  t        j                  ddgt        j
                  gddggg d	
      |j                        }t        j                  ||       y )N{G:@zGA8@Q   R   )namer6   z
2018-06-01z
2018-07-01r   )names)r   r   r   r   )datar   rI   r4   )
r   r   r   from_productr   r9   r   rI   r   r:   )r   expected_match_level_arL   r   r+   rV   s         r,   'test_reindex_multiindex_automatic_levelr     s     UFO5"b+EFF$$
bBFF8lL9:/F ^^F#F/))bBFF8lL%AB% ,,
 &&A))bBFF8lL%AB% ,,
 68,r.   )4numpyr   r_   pandasr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   pandas._testing_testingr   r-   r@   rN   rW   re   ro   r{   r   r   r   r   r   r   r   r   r   markparametrizer   r   r   r9   r   r   r   r   r   r   r   r   r    r.   r,   <module>r     s.         )D	N	
-8.	0-$--- 0, '-4-0-f #35F"GH!Yq\'BC
- D I
-
*& 1 Hg&x(ABHg&x(A5I#J#rvv		
 Hg&x(ABHg&x(AB#J#J		
"-#"-#*- cUSENRH#=>	- ?	-4
9 =,"?@- A- "--r.   