§
    tŠtjJ>  ã                   ó	  — d dl Zd dlZd dlmZmZmZmZmZ d dl	m
Z d dlmZmZ d dlmZmZmZ d dlmZ d„ Zd„ Zd„ Zd	„ Zej                             d
dedddddddddej        g
i fdej        dddddddddej        g
i fdej        dddddddddej        g
i fdej        dddddddddej        g
ddifdej         dddd d!d"ddd#ej        g
ddifd$ej!        ddddddddd%ej        g
i fg¦  «        d&„ ¦   «         Z"d'„ Z#ej                             d(d)dddd*dd+ddej        ej        g
fd,dddd-d.d/ddej        ej        g
fg¦  «        d0„ ¦   «         Z$ej                             d1d2g d3¢gd4g d5¢gg¦  «        d6„ ¦   «         Z%d7„ Z&d8„ Z'd9„ Z(ej                             d:dg d;¢fd<g d=¢fg¦  «        ej                             d>d$g fd?d#gfg¦  «        d@„ ¦   «         ¦   «         Z)ej                             dAeeeg¦  «        ej                             dBg dC¢¦  «        ej                             dDddgd dgdEœddFgd dgdEœdgdGz  ej        ddFej        g e* e+dHdG¦  «        ¦  «        ¢dEœg¦  «        dI„ ¦   «         ¦   «         ¦   «         Z,ej                             dJddd gdgfddFd dgddFgfdFdd gdgfdFdFd dgdFdFgfdKdL e+dL¦  «         e* e+dKdL¦  «        ¦  «        dLgdKz  z   fdLdK e+dK¦  «        dKgdKz  fd d  ej-        g ¦  «         ej-        g ¦  «        fdd  ej-        g ¦  «         ej-        g ¦  «        fd dd gd gfg	¦  «        dM„ ¦   «         Z.ej                             dN eg dO¢g dP¢dQœ¦  «        dF eg dR¢ ej/        g dP¢ e+dS¦  «        gdTdg¬U¦  «        dVej0        ¬W¦  «        f eej        ddFej        g e* e+dHdX¦  «        ¦  «        ¢dgdYz  dFgdZz  z    e+dX¦  «        d[œ¦  «        dL eg d\¢ ej/        dgdYz  dFgdZz  z    e+dX¦  «        gdTdg¬U¦  «        dVej0        ¬W¦  «        fg¦  «        d]„ ¦   «         Z1ej                             d^g d_¢¦  «        ej                             dBg d`¢¦  «        da„ ¦   «         ¦   «         Z2db„ Z3dc„ Z4dS )dé    N)Ú	DataFrameÚ
MultiIndexÚSeriesÚconcatÚ
date_range)ÚBaseIndexerÚFixedForwardWindowIndexer)ÚExpandingIndexerÚFixedWindowIndexerÚVariableOffsetWindowIndexer)ÚBusinessDayc                  ó  —  G d„ dt           ¦  «        }  | ¦   «         }t          j        t          d¬¦  «        5  t	          t          d¦  «        ¦  «                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó   — e Zd Zd„ ZdS )ú8test_bad_get_window_bounds_signature.<locals>.BadIndexerc                 ó   — d S ©N© )Úselfs    úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/window/test_base_indexer.pyÚget_window_boundszJtest_bad_get_window_bounds_signature.<locals>.BadIndexer.get_window_bounds   s   € Ø�4ó    N©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   Ú
BadIndexerr      s#   € € € € € ð	ð 	ð 	ð 	ð 	r   r   zBadIndexer does not implement©Úmatché   )r   ÚpytestÚraisesÚ
ValueErrorr   ÚrangeÚrolling)r   Úindexers     r   Ú$test_bad_get_window_bounds_signaturer&      sÕ   € ðð ð ð ð •[ñ ô ð ð ˆj‰lŒl€GÝ	Œ•zÐ)HÐ	IÑ	IÔ	Ið *ð *Ý�u�Q‰xŒxÑÔ× Ò  Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s   ¹0A6Á6A:Á=A:c                  ó  — t          t          d¦  «        ¦  «        } t          ¦   «         }|                      |¦  «                             ¦   «         }|                      ¦   «                              ¦   «         }t          j        ||¦  «         d S )Né
   )r   r#   r
   r$   ÚmeanÚ	expandingÚtmÚassert_series_equal)Úsr%   ÚresultÚexpecteds       r   Útest_expanding_indexerr0   #   so   € Ý�u�R‰yŒyÑÔ€AÝÑ Ô €GØ�YŠY�wÑÔ×$Ò$Ñ&Ô&€FØ�{Š{‰}Œ}×!Ò!Ñ#Ô#€HÝÔ˜6 8Ñ,Ô,Ð,Ð,Ð,r   c                  ó(  — g d¢} t          dt          d¦  «        i¦  «        } G d„ dt          ¦  «        } |d| ¬¦  «        }|                     |¦  «                             ¦   «         }t          dg d¢i¦  «        }t          j        ||¦  «         d S )	N©TFTFTÚvaluesr   c                   ó   — e Zd Zd„ ZdS )ú3test_indexer_constructor_arg.<locals>.CustomIndexerc                 ó  — t          j        |t           j        ¬¦  «        }t          j        |t           j        ¬¦  «        }t          |¦  «        D ]/}| j        |         rd||<   |dz   ||<   Œ|||<   || j        z   ||<   Œ0||fS ©N©Údtyper   é   )ÚnpÚemptyÚint64r#   Úuse_expandingÚwindow_size©	r   Ú
num_valuesÚmin_periodsÚcenterÚclosedÚstepÚstartÚendÚis	            r   r   zEtest_indexer_constructor_arg.<locals>.CustomIndexer.get_window_bounds1   s“   € Ý”H˜Z­r¬xÐ8Ñ8Ô8ˆEÝ”(˜:­R¬XÐ6Ñ6Ô6ˆCÝ˜:Ñ&Ô&ð 2ð 2�ØÔ% aÔ(ð 2Ø �E˜!‘HØ ™U�C˜‘F�Fà �E˜!‘HØ Ô!1Ñ1�C˜‘F�FØ˜#�:Ðr   Nr   r   r   r   ÚCustomIndexerr5   0   s#   € € € € € ð
	ð 
	ð 
	ð 
	ð 
	r   rI   r:   ©r?   r>   )ç        ç      ð?ç      @rM   ç      $@©r   r#   r   r$   Úsumr+   Úassert_frame_equal)r>   ÚdfrI   r%   r.   r/   s         r   Útest_indexer_constructor_argrS   +   s´   € à4Ð4Ð4€MÝ	�H�e A™hœhÐ'Ñ	(Ô	(€Bðð ð ð ð �ñ ô ð ð ˆm¨¸ÐGÑGÔG€GØ�ZŠZ˜Ñ Ô ×$Ò$Ñ&Ô&€FÝ˜(Ð$>Ð$>Ð$>Ð?Ñ@Ô@€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r   c                  ó(  — t          dt          d¦  «        i¦  «        }  G d„ dt          ¦  «        } |d¬¦  «        }|                      |dddd¬	¦  «                             ¦   «         }t          dg d
¢i¦  «        }t          j        ||¦  «         d S )Nr3   r   c                   ó   — e Zd Zd„ ZdS )ú8test_indexer_accepts_rolling_args.<locals>.CustomIndexerc                 ó  — t          j        |t           j        ¬¦  «        }t          j        |t           j        ¬¦  «        }t          |¦  «        D ]9}|r#|dk    r|dk    r|dk    r|dk    rd||<   |||<   Œ'|||<   || j        z   ||<   Œ:||fS )Nr8   r:   Úbothé   r   )r;   r<   r=   r#   r?   r@   s	            r   r   zJtest_indexer_accepts_rolling_args.<locals>.CustomIndexer.get_window_boundsG   s¯   € Ý”H˜Z­r¬xÐ8Ñ8Ô8ˆEÝ”(˜:­R¬XÐ6Ñ6Ô6ˆCÝ˜:Ñ&Ô&ð 2ð 2�àð2à# qÒ(Ð(Ø &Ò(Ð(Ø š	˜	Ø˜Qš˜à �E˜!‘HØ'�C˜‘F�Fà �E˜!‘HØ Ô!1Ñ1�C˜‘F�FØ˜#�:Ðr   Nr   r   r   r   rI   rV   F   s#   € € € € € ð	ð 	ð 	ð 	ð 	r   rI   r:   ©r?   TrX   )rC   rB   rD   rE   )rK   rL   rN   rM   ç      @rO   )rR   rI   r%   r.   r/   s        r   Ú!test_indexer_accepts_rolling_argsr\   C   s»   € Ý	�H�e A™hœhÐ'Ñ	(Ô	(€Bðð ð ð ð �ñ ô ð ð& ˆm¨Ð*Ñ*Ô*€GØ�ZŠZØ˜¨!°FÀð ñ ô ç	‚c�e„eð õ ˜(Ð$>Ð$>Ð$>Ð?Ñ@Ô@€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r   zfunc,np_func,expected,np_kwargsÚcountrM   ç       @ÚminrK   rL   r[   ç      @ç      @ç       @Úmaxç      Y@ç      "@Ústdg–Ã»·ÛK@gþDéû¾mK@gµ!µ?þJ@gß'Üež æ?Úddofr:   Úvarg[{Ÿªª@¨@g[{Ÿªª‚§@g[{ŸªªÄ¦@g      à?Úmediang      !@c                 ó4  ‡‡— t          j        d¦  «        }d|d<   t          d¬¦  «        }d} | |¦  «                             |d¬¦  «        }	t	          j        t          |¬	¦  «        5   t          |	|¦  «        ¦   «          d d d ¦  «         n# 1 swxY w Y   d
} | |¦  «                             |d¬¦  «        }	t	          j        t          |¬	¦  «        5   t          |	|¦  «        ¦   «          d d d ¦  «         n# 1 swxY w Y    | |¦  «                             |d|¬¦  «        }	 t          |	|¦  «        ¦   «         }
 | |¦  «        d d |…         }t          j	        |
|¦  «          | |	 
                    ˆˆfd„¦  «        ¦  «        }t          j	        |
|¦  «         |dk    rdnd } | |¦  «                             ||¬¦  «        } t          ||¦  «        ¦   «         } | | 
                    ˆˆfd„¦  «        ¦  «        }t          j	        ||¦  «         d S )NrN   rd   r   é   rZ   z.Forward-looking windows can't have center=TrueT)ÚwindowrC   r   zAForward-looking windows don't support setting the closed argumentÚright)rl   rD   rY   ©rl   rB   rE   c                 ó   •—  ‰| fi ‰¤ŽS r   r   ©ÚxÚnp_funcÚ	np_kwargss    €€r   ú<lambda>z-test_rolling_forward_window.<locals>.<lambda>²   s   ø€ ¸¸ÀÐ8OÐ8OÀYÐ8OÐ8O€ r   r]   r   ©rl   rB   c                 ó   •—  ‰| fi ‰¤ŽS r   r   rp   s    €€r   rt   z-test_rolling_forward_window.<locals>.<lambda>¼   s   ø€ ¸¸ÀÐ9PÐ9PÀiÐ9PÐ9P€ r   )r;   Úaranger	   r$   r    r!   r"   Úgetattrr+   Úassert_equalÚapply)Úframe_or_seriesÚfuncrr   r/   rs   rE   r3   r%   r   r$   r.   Ú	expected2rB   Úrolling3Úresult3Ú	expected3s     ` `           r   Útest_rolling_forward_windowr�   a   s¶  øø€ õr ŒY�t‰_Œ_€FØ€Fˆ1�Iå'°AÐ6Ñ6Ô6€Gà<€EØˆo˜fÑ%Ô%×-Ò-°WÀTÐ-ÑJÔJ€GÝ	Œ•z¨Ð	/Ñ	/Ô	/ð !ð !Ø��˜ÑÔÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð P€EØˆo˜fÑ%Ô%×-Ò-°WÀWÐ-ÑMÔM€GÝ	Œ•z¨Ð	/Ñ	/Ô	/ð !ð !Ø��˜ÑÔÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð ˆo˜fÑ%Ô%×-Ò-°WÈ!ÐRVÐ-ÑWÔW€GØ#�W�W˜dÑ#Ô#Ñ%Ô%€Fð ˆ˜xÑ(Ô(¨¨¨4¨Ô0€HÝ„O�F˜HÑ%Ô%Ð%ð  � §¢Ð.OÐ.OÐ.OÐ.OÐ.OÑ PÔ PÑQÔQ€IÝ„O�F˜IÑ&Ô&Ð&ð ˜w’��!�!¨D€KØˆ˜vÑ&Ô&×.Ò.°gÈ;Ð.ÑWÔW€HØ%�g�h Ñ%Ô%Ñ'Ô'€GØ� §¢Ð/PÐ/PÐ/PÐ/PÐ/PÑ QÔ QÑRÔR€IÝ„O�G˜YÑ'Ô'Ð'Ð'Ð's$   Á)BÂBÂBÃC;Ã;C?ÄC?c                 óP  — t          j        d¦  «        }d|d<   t          d¬¦  «        } | |¦  «                             |d|¬¦  «        }|                     ¦   «         } | ddd	d
ddddt           j        t           j        g
¦  «        d d |…         }t          j        ||¦  «         d S )NrN   rd   r   rZ   rk   rn   rK   gÅoòÛ@gê\QJÖ@gúòì£Ó@g§v†©-Õ@gA€Û@)r;   rw   r	   r$   ÚskewÚnanr+   ry   )r{   rE   r3   r%   r$   r.   r/   s          r   Útest_rolling_forward_skewnessr…   À   s¼   € ÝŒY�t‰_Œ_€FØ€Fˆ1�Iå'°AÐ6Ñ6Ô6€GØˆo˜fÑ%Ô%×-Ò-°WÈ!ÐRVÐ-ÑWÔW€GØ�\Š\‰^Œ^€FàˆàØØØØØØØÝŒFÝŒFð	
ñô ð €fˆ€fô€Hõ „O�F˜HÑ%Ô%Ð%Ð%Ð%r   zfunc,expectedÚcovg     @X@g     @WÀÚcorrgîá°óÚë?g¥hÆ"¥ª’?g¡´1=�ë¿c                 ó  — t          j        d¦  «                             dd¦  «        }|dz  }d|d<   t          j        ||gd¬¦  «        }t	          d¬	¦  «        }t          |¦  «                             |d¬
¦  «        } t          || ¦  «        ¦   «         j        t          d ¦  «        dfdf         }| 
                    d¬¦  «        }t          |¦  «         
                    d¬¦  «        }|j        |_        t          j        ||¦  «         d S )Nr(   éÿÿÿÿr:   rY   éd   )r   r   )Úaxisrk   rZ   ru   r   T)Údrop)r;   rw   ÚreshapeÚconcatenater	   r   r$   rx   ÚlocÚsliceÚreset_indexr   Únamer+   ry   )r|   r/   Úvalues1Úvalues2r3   r%   r$   r.   s           r   Útest_rolling_forward_cov_corrr•   Ù   s   € õ, Œi˜‰mŒm×#Ò# B¨Ñ*Ô*€GØ˜‰k€GØ€GˆD�MÝŒ^˜W gÐ.°QÐ7Ñ7Ô7€Få'°AÐ6Ñ6Ô6€GÝ˜ÑÔ×'Ò'¨wÀAÐ'ÑFÔF€Gà#�W�W˜dÑ#Ô#Ñ%Ô%Ô)­5°©;¬;¸Ð*:¸AÐ*=Ô>€FØ×Ò TÐÑ*Ô*€FÝ�hÑÔ×+Ò+°Ð+Ñ6Ô6€HØ”K€H„MÝ„O�F˜HÑ%Ô%Ð%Ð%Ð%r   zclosed,expected_datarm   )
rK   rL   r^   rM   ra   ç      (@r`   ra   rb   re   Úleft)
rK   rK   rL   r^   ç      @re   r˜   r`   ra   rb   c                 óB  — t          dd¬¦  «        }t          t          d¦  «        |¬¦  «        }t          d¦  «        }t	          ||¬¦  «        }|                     || ¬¦  «                             ¦   «         }t          ||¬¦  «        }t          j        ||¦  «         d S )NÚ2020r(   ©Úperiods)Úindexr:   ©r�   Úoffset)rD   )	r   r   r#   r   r   r$   rP   r+   rQ   )rD   Úexpected_datar�   rR   rŸ   r%   r.   r/   s           r   Ú&test_non_fixed_variable_window_indexerr¡   þ   s—   € õ �v rÐ*Ñ*Ô*€EÝ	•5˜‘9”9 EÐ	*Ñ	*Ô	*€BÝ˜‰^Œ^€FÝ)°¸fÐEÑEÔE€GØ�ZŠZ˜¨ˆZÑ/Ô/×3Ò3Ñ5Ô5€FÝ˜¨eÐ4Ñ4Ô4€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r   c                  óª   — t          j        t          d¬¦  «        5  t          dt	          d¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzindex must be a DatetimeIndex.r   Úfoor:   rž   )r    r!   r"   r   r   r   r   r   Ú(test_variableoffsetwindowindexer_not_dtir¤     s©   € å	Œ•zÐ)IÐ	JÑ	JÔ	Jð Hð HÝ#¨%½ÀA¹¼ÐGÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Hs   œAÁAÁAc                  ó²   — t          dd¬¦  «        } t          j        t          d¬¦  «        5  t	          | d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrš   r(   r›   z(offset must be a DateOffset-like object.r   r£   rž   )r   r    r!   r"   r   )Úidxs    r   Ú+test_variableoffsetwindowindexer_not_offsetr§     s¡   € å
�V RÐ
(Ñ
(Ô
(€CÝ	Œ•zÐ)SÐ	TÑ	TÔ	Tð =ð =Ý#¨#°eÐ<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   ­AÁAÁAc                 ó  — t          dg d¢i¦  «        }t          d¬¦  «        }|                     |d| ¬¦  «                             ¦   «         }t          dg d¢i¦  «        d d | …         }t	          j        ||¦  «         d S )NÚb)NNNé   rY   rZ   r   rn   )rK   rK   rL   rL   )r   r	   r$   r]   r+   rQ   )rE   rR   r%   r.   r/   s        r   Ú test_fixed_forward_indexer_countr«     s‹   € å	�CÐ.Ð.Ð.Ð/Ñ	0Ô	0€BÝ'°AÐ6Ñ6Ô6€GØ�ZŠZ˜w°A¸DˆZÑAÔA×GÒGÑIÔI€FÝ˜#Ð3Ð3Ð3Ð4Ñ5Ô5°f°f¸°fÔ=€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r   )Ú	end_valuer3   )rK   r:   r:   rk   rY   r‰   )rK   r:   r   rk   r:   )r|   ÚargsÚquantilec                 ó(  ‡ —  G ˆ fd„dt           ¦  «        }g d¢}t          dt          d¦  «        i¦  «        } |d|¬¦  «        } t          |                     |¦  «        |¦  «        |Ž }t          d|i¦  «        }	t          j        ||	¦  «         d S )Nc                   ó   •— e Zd Zˆ fd„ZdS )ú0test_indexer_quantile_sum.<locals>.CustomIndexerc                 ó&  •— t          j        |t           j        ¬¦  «        }t          j        |t           j        ¬¦  «        }t          |¦  «        D ]=}| j        |         rd||<   t          |‰	z   d¦  «        ||<   Œ+|||<   || j        z   ||<   Œ>||fS r7   )r;   r<   r=   r#   r>   rc   r?   )
r   rA   rB   rC   rD   rE   rF   rG   rH   r¬   s
            €r   r   zBtest_indexer_quantile_sum.<locals>.CustomIndexer.get_window_bounds,  sž   ø€ Ý”H˜Z­r¬xÐ8Ñ8Ô8ˆEÝ”(˜:­R¬XÐ6Ñ6Ô6ˆCÝ˜:Ñ&Ô&ð 2ð 2�ØÔ% aÔ(ð 2Ø �E˜!‘HÝ   Y¡°Ñ2Ô2�C˜‘F�Fà �E˜!‘HØ Ô!1Ñ1�C˜‘F�FØ˜#�:Ðr   Nr   )r¬   s   €r   rI   r±   +  s.   ø€ € € € € ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	r   rI   r2   r3   r   r:   rJ   )r   r   r#   rx   r$   r+   rQ   )
r¬   r3   r|   r­   rI   r>   rR   r%   r.   r/   s
   `         r   Útest_indexer_quantile_sumr³   %  s½   ø€ ðð ð ð ð ð ð �ñ ô ð ð 5Ð4Ð4€MÝ	�H�e A™hœhÐ'Ñ	(Ô	(€Bàˆm¨¸ÐGÑGÔG€GØ/�W�R—Z’Z Ñ(Ô(¨$Ñ/Ô/°Ð6€FÝ˜( FÐ+Ñ,Ô,€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r   Úindexer_classr?   )r:   rY   é   Údf_data)Úar©   rY   é   é   c                 ó  — t          |¦  «        }d} | |¬¦  «        }|j        }t          |¦  «        D ]Q}|                     d¦  «        d                              |d¬¦  «                             ¦   «          |j        |k    sJ ‚ŒRd S )Nrk   rZ   r·   r©   r:   ru   )r   r?   r#   Úgroupbyr$   r)   )r´   r?   r¶   rR   Ú
num_trialsr%   Úoriginal_window_sizerH   s           r   Ú0test_indexers_are_reusable_after_groupby_rollingr¾   A  sž   € õ  
�7Ñ	Ô	€BØ€JØˆm¨Ð4Ñ4Ô4€GØ"Ô.ÐÝ�:ÑÔð ;ð ;ˆØ
�
Š
�3‰Œ˜Ô×$Ò$¨GÀÐ$ÑCÔC×HÒHÑJÔJÐJØÔ"Ð&:Ò:Ð:Ð:Ð:Ð:ð;ð ;r   z5window_size, num_values, expected_start, expected_endr   rµ   c           	      óf  — t          | ¬¦  «        }|                     ||¬¦  «        \  }}t          j        |t	          j        |d d |…         ¦  «        d¬¦  «         t          j        |t	          j        |d d |…         ¦  «        d¬¦  «         t          |¦  «        t          |¦  «        k    sJ ‚d S )NrZ   )rA   rE   F)Úcheck_dtype)r	   r   r+   Úassert_numpy_array_equalr;   ÚarrayÚlen)r?   rA   Úexpected_startÚexpected_endrE   r%   rF   rG   s           r   Ú!test_fixed_forward_indexer_boundsrÆ   Z  s¹   € õ$ (°KÐ@Ñ@Ô@€GØ×*Ò*°jÀtÐ*ÑLÔL�J€Eˆ3åÔØ�rŒx˜ v v¨ vÔ.Ñ/Ô/¸Uðñ ô ð õ Ô ¥R¤X¨l¸6¸6¸T¸6Ô.BÑ%CÔ%CÐQVÐWÑWÔWÐWÝˆu‰:Œ:�˜S™œÒ!Ð!Ð!Ð!Ð!Ð!r   zdf, window_size, expected)r   r:   rY   )r:   rY   rY   )r©   r·   )r   g      ø?r^   rk   r·   )Únamesr©   )r�   r’   r9   é   rª   é   )r©   r·   Úc)çÍÌÌÌÌÌ@rË   g      @r˜   r˜   g      @r`   r–   g      )@g      *@g      +@g      ,@g      -@g      .@g      /@g      0@g     €0@g      1@c                 óÔ   — t          |¬¦  «        }|                      d¦  «        d                              |d¬¦  «                             ¦   «         }t	          j        ||¦  «         d S )NrZ   r·   r©   r:   ru   )r	   r»   r$   r)   r+   r,   )rR   r?   r/   r%   r.   s        r   Ú0test_rolling_groupby_with_fixed_forward_specificrÍ   v  sa   € õl (°KÐ@Ñ@Ô@€GØ�ZŠZ˜‰_Œ_˜SÔ!×)Ò)°ÀaÐ)ÑHÔH×MÒMÑOÔO€FÝÔ˜6 8Ñ,Ô,Ð,Ð,Ð,r   Ú
group_keys)	)r:   )r:   rY   )rY   r:   )r:   r:   rY   )r:   rY   r:   )r:   r:   rY   rY   )r:   rY   rk   rY   rk   )r:   r:   rY   r:   r:   rY   r:   r:   rY   r:   r:   rY   )r:   rY   rk   r:   rY   rk   r:   rY   rk   r:   rY   rk   r:   rY   rk   )r:   rY   rk   r¹   r   é   é   c           	      ó²  ‡— t          t          j        t          | ¦  «        ¦  «        t          j        t          | ¦  «        t          j        ¬¦  «        dz   t          j        t          | ¦  «        t          j        ¬¦  «        dœ¦  «        }t          ‰¬¦  «        }| 	                    d¦  «        d          
                    |d¬¦  «                             ¦   «         }dd	g|j        _        | 	                    d¦  «        g d¢         }t          ˆfd
„|D ¦   «         ¦  «        }|                     dd	g¦  «        d         }t!          j        ||¦  «         d S )Nr8   é   )r·   r©   rÊ   rZ   r·   r©   r:   ru   rÊ   c           
      ó’   •‡— g | ]B\  }Š‰                      ˆˆfd „t          t          ‰¦  «        ¦  «        D ¦   «         ¬¦  «        ‘ŒCS )c                 óh   •— g | ].}‰d          j         ||‰z   …                              d¬¦  «        ‘Œ/S )r©   r:   )Ú	min_count)ÚilocrP   )Ú.0rH   Úgr?   s     €€r   ú
<listcomp>zKtest_rolling_groupby_with_fixed_forward_many.<locals>.<listcomp>.<listcomp>Ò  sN   ø€ ð ð ð àð �c”F”K  A¨¡OÐ 3Ô4×8Ò8À1Ð8ÑEÔEðð ð r   )r©   )Úassignr#   rÃ   )r×   Ú_rØ   r?   s     @€r   rÙ   z@test_rolling_groupby_with_fixed_forward_many.<locals>.<listcomp>Ð  sz   øø€ ð 	
ð 	
ð 	
ñ ��1ð �HŠHðð ð ð ð å"¥3 q¡6¤6™]œ]ðñ ô ð ñ ô ð	
ð 	
ð 	
r   )r   r;   rÂ   Úlistrw   rÃ   Úfloat64r=   r	   r»   r$   rP   r�   rÇ   r   Ú	set_indexr+   r,   )rÎ   r?   rR   r%   r.   ÚgroupsÚmanuals    `     r   Ú,test_rolling_groupby_with_fixed_forward_manyrá   ±  sE  ø€ õ" 
å”�$˜zÑ*Ô*Ñ+Ô+Ý”�3˜z™?œ?µ"´*Ð=Ñ=Ô=ÀÑBÝ”�3˜z™?œ?µ"´(Ð;Ñ;Ô;ð	
ð 	
ñ
ô 
€Bõ (°KÐ@Ñ@Ô@€GØ�ZŠZ˜‰_Œ_˜SÔ!×)Ò)°ÀaÐ)ÑHÔH×LÒLÑNÔN€FØ˜s˜€F„LÔà�ZŠZ˜‰_Œ_˜_˜_˜_Ô-€FÝð	
ð 	
ð 	
ð 	
ð ð	
ñ 	
ô 	
ñ
ô 
€Fð ×Ò˜s C˜jÑ)Ô)¨#Ô.€FåÔ˜6 6Ñ*Ô*Ð*Ð*Ð*r   c                  óÚ  —  G d„ dt           ¦  «        }  | ¦   «         }t          d¦  «                             |¦  «        }d}t          j        t
          |¬¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t
          |¬¦  «        5  t          t          |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          |¬¦  «        5  | 	                    d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          |¬¦  «        5  | 
                    d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó   — e Zd Zd„ ZdS )ú4test_unequal_start_end_bounds.<locals>.CustomIndexerc                 óX   — t          j        dg¦  «        t          j        ddg¦  «        fS ©Nr:   rY   ©r;   rÂ   ©r   rA   rB   rC   rD   rE   s         r   r   zFtest_unequal_start_end_bounds.<locals>.CustomIndexer.get_window_boundsá  s%   € Ý”8˜Q˜C‘=”=¥"¤(¨A¨q¨6Ñ"2Ô"2Ð2Ð2r   Nr   r   r   r   rI   rä   à  s#   € € € € € ð	3ð 	3ð 	3ð 	3ð 	3r   rI   r:   rF   r   T©Úpairwise©r   r   r$   r    r!   r"   r)   ÚnextÚiterr‡   r†   ©rI   r%   Úrollr   s       r   Útest_unequal_start_end_boundsrð   ß  s]  € ð3ð 3ð 3ð 3ð 3�ñ 3ô 3ð 3ð ˆm‰oŒo€GÝ�!‰9Œ9×Ò˜WÑ%Ô%€DØ€EÝ	Œ•z¨Ð	/Ñ	/Ô	/ð ð Ø�	Š	‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•z¨Ð	/Ñ	/Ô	/ð ð Ý�T�$‰ZŒZÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•z¨Ð	/Ñ	/Ô	/ð !ð !Ø�	Š	˜4ˆ	Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ 
Œ•z¨Ð	/Ñ	/Ô	/ð  ð  Ø�Š˜$ˆÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  sH   ÁA>Á>BÂBÂ$CÃCÃCÃ3DÄDÄDÄ<E Å E$Å'E$c                  óÞ  —  G d„ dt           ¦  «        }  | ¦   «         }t          ddg¦  «                             |¦  «        }d}t          j        t
          |¬¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t
          |¬¦  «        5  t          t          |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          |¬¦  «        5  | 	                    d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          |¬¦  «        5  | 
                    d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó   — e Zd Zd„ ZdS )ú4test_unequal_bounds_to_object.<locals>.CustomIndexerc                 óV   — t          j        dg¦  «        t          j        dg¦  «        fS ræ   rç   rè   s         r   r   zFtest_unequal_bounds_to_object.<locals>.CustomIndexer.get_window_bounds÷  s!   € Ý”8˜Q˜C‘=”=¥"¤(¨A¨3¡-¤-Ð/Ð/r   Nr   r   r   r   rI   ró   ö  s#   € € € € € ð	0ð 	0ð 	0ð 	0ð 	0r   rI   r:   zstart and endr   Tré   rë   rî   s       r   Útest_unequal_bounds_to_objectrõ   ô  sa  € ð0ð 0ð 0ð 0ð 0�ñ 0ô 0ð 0ð ˆm‰oŒo€GÝ�1�a�&‰>Œ>×!Ò! 'Ñ*Ô*€DØ€EÝ	Œ•z¨Ð	/Ñ	/Ô	/ð ð Ø�	Š	‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•z¨Ð	/Ñ	/Ô	/ð ð Ý�T�$‰ZŒZÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•z¨Ð	/Ñ	/Ô	/ð !ð !Ø�	Š	˜4ˆ	Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ 
Œ•z¨Ð	/Ñ	/Ô	/ð  ð  Ø�Š˜$ˆÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  sH   ÁB Â BÂBÂ&CÃCÃCÃ5DÄDÄDÄ>E"Å"E&Å)E&)5Únumpyr;   r    Úpandasr   r   r   r   r   Úpandas._testingÚ_testingr+   Úpandas.api.indexersr   r	   Úpandas.core.indexers.objectsr
   r   r   Úpandas.tseries.offsetsr   r&   r0   rS   r\   ÚmarkÚparametrizerÃ   r„   r_   rc   rf   rh   ri   r�   r…   r•   r¡   r¤   r§   r«   r³   rÜ   r#   r¾   rÂ   rÆ   Úfrom_arraysrÝ   rÍ   rá   rð   rõ   r   r   r   ú<module>r      s1  ðØ Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .ð*ð *ð *ð-ð -ð -ð,ð ,ð ,ð0,ð ,ð ,ð< „×ÒØ%à	�#˜˜S # s¨C°°c¸3ÀÀRÄVÐLÈbÐQØ	�”˜˜c 3¨¨S°#°s¸CÀÀbÄfÐMÈrÐRàØŒFØ�#�s˜E 5¨%°°c¸3ÀÄÐGØð		
ð ØŒFàØØØØØØØØØ”ðð �QˆKð	
ð$ ØŒFàØØØØØØØØØ”ðð �QˆKð	
ð$ ØŒIØ�#�s˜C  c¨3°°S¸"¼&ÐAØð		
ðW1ñ4ô 4ðj'(ð '(ñk4ô 4ðj'(ðT&ð &ð &ð2 „×ÒØà	��c˜3  c¨5°#°s¸B¼FÀBÄFÐKÐLààØØØ"Ø$Ø"ØØØ”Ø”ðð	
ðñô ð*&ð &ñ+ô ð*&ð  „×ÒØà	ÐEÐEÐEÐFØ	ÐCÐCÐCÐDðñô ð,ð ,ñô ð,ðHð Hð Hð=ð =ð =ð,ð ,ð ,ð „×ÒØ˜qÐ"3Ð"3Ð"3Ð4°rÐ;LÐ;LÐ;LÐ6MÐNñô ð „×ÒÐ)¨X°r¨N¸ZÈ#ÈÐ<OÐ+PÑQÔQð,ð ,ñ RÔQñô ð,ð0 „×ÒØÐ(Ð*CÐEUÐVñô ð „×Ò˜¨
¨
¨
Ñ3Ô3Ø„×ÒØà�!ˆf˜A˜q˜6Ð"Ð"Ø�!ˆf˜A˜q˜6Ð"Ð"Øˆc�B‰h˜bœf a¨¨B¬FÐH°T°T¸%¸%ÀÀ2¹,¼,Ñ5GÔ5GÐHÐIÐIðñô ð
;ð 
;ñô ñ 4Ô3ñô ð
;ð „×ÒØ;à	
ˆA�ˆs�Q�CÐØ	
ˆA��1ˆv˜˜1�vÐØ	
ˆA�ˆs�Q�CÐØ	
ˆA��1ˆv˜˜1�vÐØ	
ˆB���b‘	”	˜4˜4   a¨¡¤Ñ-Ô-°°°q±Ñ8Ð9Ø	ˆQ���a‘”˜1˜# ™'Ð"Ø	
ˆAˆxˆrŒx˜‰|Œ|˜X˜RœX b™\œ\Ð*Ø	
ˆAˆxˆrŒx˜‰|Œ|˜X˜RœX b™\œ\Ð*Ø	
ˆA�ˆs�Q�CÐð
ñô ð"ð "ñô ð"ð „×ÒØð ˆI˜I˜I˜I¨I¨I¨IÐ6Ð6Ñ7Ô7ØØˆFØ��Ø,�jÔ,¨i¨i¨i¸¸¸q¹¼Ð-BÈ3ÐPTÈ+ÐVÑVÔVØØ”jð	ñ ô ð		
ð ˆIàœ& ! Q¨¬ÐD°°°e°e¸A¸r±l´lÑ1CÔ1CÐDØ˜˜q™ A 3¨¡8Ñ+Ø˜˜r™œðð ñô ð ØˆFðð ð ð( -�jÔ,Ø�S˜1‘W ˜s R™xÑ'¨¨¨r©¬Ð3¸CÀ¸;ðñ ô ð Ø”jð3ñ ô ð$	
ð0ñ3ô 3ðh-ð -ñi3ô 3ðh-ð „×ÒØð
ð 
ð 
ñô ð „×Ò˜Ð(>Ð(>Ð(>Ñ?Ô?ð+ð +ñ @Ô?ñô ð+ð> ð  ð  ð* ð  ð  ð  ð  r   