
    bMh<                        d dl Zd dlZd dlmZ d dlmZmZ d dlm	Z
 d dlmZ ej        j        gZ ej        d          Ze                    ej                             eej                   ed          k    o	 e            dej                              ej                            d	           G d
 d                      ZdS )    N)is_platform_arm)	DataFrameSeries)Versionnumbaz0.61z&Segfaults on ARM platforms with numba )reasonignorec            
       &   e Zd Zd Zej        j        ej                            d e e	d           e	d          d           e
 e	d          d          g          d                         Zej                            e          ej                            d e e	d           e	d          d           e
 e	d          d          g          d	                         Zej                            d
g d          d             ZdS )TestEWMc                    t          t          d          t          d          d          }|                    d                              d                                          }t          j        t          d          5  |                    |                    d                     d d d            d S # 1 swxY w Y   d S )	N   ab         ?z;Must call mean with update=None first before passing updatematch   update)	r   rangeheadewmonlinepytestraises
ValueErrormean)selfdf
online_ewms      _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/window/test_online.pytest_invalid_updatezTestEWM.test_invalid_update   s    U1XXE!HH5566WWQZZ^^C((//11
]O
 
 
 	/ 	/ OO2771::O...		/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   *B99B= B=objr   r   foo)namec                 J   |                     d||                                          }|||d}|                    d                               d||                              |          }	t	          d          D ]}
|	                                }t          j        ||                    d                     |	                    |                    d                    }t          j        ||                    d                     |	                                 d S )Nr   )adjust	ignore_nanogilparallelnopythonr   engine_kwargs   r   )	r   r   r   r   r   tmassert_equaltailreset)r    r%   r,   r-   r.   r)   r*   expectedr0   r"   _results               r#   test_online_vs_non_online_meanz&TestEWM.test_online_vs_non_online_mean$   s
    773v7CCHHJJ"'X8TT HHQKKSVyS99V-V00 	 q 	 	A__&&FOFHMM!$4$4555__CHHQKK_88FOFHMM!$4$4555	 	    )r   c                    t          t          j        g dd                    }|                    d||||                                          }	|||d}
|                    d                              d|||                    d          |                              |
          }t          d          D ]}|                                }t          j	        ||	                    d                     |                    |
                    d	          |
                    d	          
          }t          j	        ||	
                    d	                     |                                 d S )N)z
2020-01-01z
2020-01-05z
2020-01-07z
2020-01-17z
2020-01-21zdatetime64[ns])dtyper   )r)   r*   timeshalflifer+   r   r/   r1   )r   update_times)r   nparrayr   r   r   r   r   r2   r3   r4   r5   )r    r%   r,   r-   r.   r)   r*   halflife_with_timesr=   r6   r0   r"   r7   r8   s                 r#   test_update_times_meanzTestEWM.test_update_times_mean=   sv    HVVV&  
 
 77(  
 
 $&& 	 #(X8TTHHQKKS#jjmm,    V-V00 	 q 	 	A__&&FOFHMM!$4$4555__CHHQKKejjQRmm_TTFOFHMM!$4$4555	 	r:   method)	aggregatestdcorrcovvarc                 8   t          t          d                    }i }|dk    rd |d<   t          j        t          d          5   t          |                    d                                          |          di | d d d            d S # 1 swxY w Y   d S )	N
   rE   c                     | S )N )xs    r#   <lambda>z=TestEWM.test_ewm_notimplementederror_raises.<locals>.<lambda>m   s    q r:   funcz.* is not implemented.r   r   rM   )r   r   r   r   NotImplementedErrorgetattrr   r   )r    rD   serkwargss       r#   #test_ewm_notimplementederror_raisesz+TestEWM.test_ewm_notimplementederror_raisesh   s    U2YY[  ([F6N].6NOOO 	; 	;0GCGGAJJ%%''00::6:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   <BBBN)__name__
__module____qualname__r$   r   markslowparametrizer   r   r   r9   xfailrQ   rC   rU   rM   r:   r#   r   r      sq       / / / [[		auuQxx889966%%((QV;W;W;WX    * [122[		auuQxx889966%%((QV;W;W;WX % %  32%N [X'Q'Q'QRR; ; SR; ; ;r:   r   )numpyr@   r   pandas.compatr   pandasr   r   pandas._testing_testingr2   pandas.util.versionr   rY   
single_cpu
pytestmarkimportorskipr   appendskipif__version__filterwarningsr   rM   r:   r#   <module>rj      s\        ) ) ) ) ) )              ' ' ' ' ' 'k$%
G$$ 
  
K!""ggfoo5K//:K:KK8IKK      H%%V; V; V; V; V; V; V; &%V; V; V;r:   