
    dq=                     d   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	 d dl
mZ d dlmZ  ej         eddgddgddgddggdd g	           eddgddgddgddggddg	           eddgddgddgddggd
d
g	           eddgddgddgddggdd g	           eddgddgddgddggddg	           eddgddgddgddggd
dg	           eddgddgddgddggddg	           eddgddgddgddggd dg	           eddgddgddgddggddg	          g	          d             Zej        d             Zej        d             Zd Zd Zej                            dddg          d             Zej                            dddg          d             Zej                            d ed                    d              Zd! Zd" Zd# Zej                            d$d% d& g          d'             Zej                            d$d( d) g          d*             Z G d+ d,          Z dS )-    N)	DataFrameIndex
MultiIndexSeries
date_range)	safe_sort               columnsC      ?g               @g      @g      @g       @X)paramsc                     | j         S )zPairwise frames test_pairwise)param)requests    ]/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/window/test_pairwise.pypairwise_framesr      s     =    c                  @    t          ddgddgddgddggddg          S )z'Pairwise target frame for test_pairwiser	   r
   r   r   r   r   r   r    r   r   pairwise_target_framer   #   s4     q!fq!fq!fq!f51vFFFFr   c                  @    t          g dg dg dg dgg d          S )z&Pairwise other frame for test_pairwise)Nr   r   )Nr   r	   )N   r	   )Nr   r   )YZr   r   r   r   r   r   pairwise_other_framer#   )   s>     	|||\\\<<<@   r   c           	      D   | }|t           j                            t          |                    z   }|                    dd                              |          }t          j        |d         t          j        |dd          |dd                    d                    d S )N2      windowmin_periodsr   r   )nprandomrandnlenrollingcovtmassert_almost_equal)seriesABresults       r   test_rolling_covr9   2   s    A	BIOOCFF###AYYbbY1155a88F6":rvagqw'?'?'EFFFFFr   c           	         | }|t           j                            t          |                    z   }|                    dd                              |          }t          j        |d         t          j        |dd          |dd                    d                    t          j	                    }t          j	                    }t           j
        |d d<   t           j
        |d d<   |                    t          |          d	                              |          }t          j        |d         |                    |                     d S )
Nr%   r&   r'   r*   r+   r,   r   
   r   )r-   r.   r/   r0   r1   corrr3   r4   corrcoefmakeTimeSeriesnan)r5   r6   r7   r8   abs         r   test_rolling_corrrB   :   s   A	BIOOCFF###AYYbbY1166q99F6":r{1STT7AcddG'D'DT'JKKK 	A
AFAbqbEVAcrcFYYc!ff!Y4499!<<F6":qvvayy11111r   funcr2   r<   c                 |    t          |                    dd          |                       }|j        t          d           dfdf         }|j                            d          |_         t          |d                             dd          |           |d                   }t          j        ||d           d S )Nr;   r   r'   r   Fcheck_names)getattrr1   locsliceindex	droplevelr3   assert_series_equal)rC   framer8   expecteds       r   test_rolling_pairwise_cov_corrrO   K   s    CWU]]"!]<<dCCEEFZta(!+,F<))!,,FLHwuQx''rq'AA4HHqRRH68??????r   methodc                     d          t                              d                               } t                              d                               }                     fd          }t          j        ||           t          j        ||                                           t          t          j        j	        j
         j        j                   t                              d                               }t           fdD                       }t          j        ||           d S )Nr   r;   r(   c                 ^     t                              d                    |           S )Nr;   rR   rG   r1   )xrP   r5   s    r   <lambda>z(test_flex_binary_frame.<locals>.<lambda>Z   s*     Jb(A(A6 J J1 M M r   rJ   r   c           	          i | ]<}| t          |                             d                     |                   =S )r;   rR   rT   ).0krM   frame2rP   s     r   
<dictcomp>z*test_flex_binary_frame.<locals>.<dictcomp>f   sI    SSS8GE!H$$B$//88CCSSSr   )rG   r1   applyr3   assert_frame_equalcopyr   r-   r.   r/   shaperJ   r   )rP   rM   resres2expres3r[   r5   s   ``    @@r   test_flex_binary_framere   T   sH   1XF
4'&...++V
4
4U
;
;C475===++V44V<<D
++MMMMM
N
NC#s###$$$$ZZ\\F
	&flFN  F 575===++V44V<<D
SSSSSSUSSS C $$$$$$r   r(      c                 *   t          t          j        d                    }t          t          j        d                    }|                    |                               |                                                                          sJ d S )N   rR   )other)r   r-   zerosaranger1   r<   isnaall)r(   sri   s      r   $test_rolling_corr_with_zero_variancero   k   sw     	rx||A29R==!!E99F9##((u(55::<<@@BBBBBBBr   c                  
   t          t          j        ddgddgddgddgd	d
gddgg                    } | d                             dd                              | d                   }t          d |D                       sJ t          t          j                            dd                    } | d                             dd                              | d                   }t          d |D                       sJ d S )NgF$?g)?gT5?g?'N?gFr1?g+	C-?gR	`?g1:b%?g9T!X4!?gXS_?gS= ?g\+Lt?r   r   T)centerr   c              3   j   K   | ].}t          j        t          j        |                    d k    V  /dS r   Nr-   abs
nan_to_numrY   rU   s     r   	<genexpr>z#test_corr_sanity.<locals>.<genexpr>   ;      ::rvbmA&&''1,::::::r      r	   c              3   j   K   | ].}t          j        t          j        |                    d k    V  /dS rs   rt   rw   s     r   rx   z#test_corr_sanity.<locals>.<genexpr>   ry   r   )r   r-   arrayr1   r<   rm   r.   rand)dfra   s     r   test_corr_sanityr   t   s   	
Z(Y'Z(Z(Z(Z(		
 		

 
B Q%--$-
'
'
,
,RU
3
3C::c::::::::	29>>"a((	)	)B
Q%--$-
'
'
,
,RU
3
3C::c::::::::::r   c                     t          g dg d          } t          ddgddg          }|                     dd                              |          }t          g d	          }t          j        ||           t          g d
g d          }|                     dd                              |          }t          j        ||           d S )Nr   r	   r    r   r   r	   rJ   r   r    r   r	   r'   )NNr   r   Nr    )r   r1   r2   r3   rL   s1s2r8   rN   s2as        r   test_rolling_cov_diff_lengthr      s    					+	+	+B	Aq!f	%	%	%BZZqaZ0044R88F'''((H68,,,
YYY
/
/
/CZZqaZ0044S99F68,,,,,r   c                     t          g dg d          } t          ddgddg          }|                     dd                              |          }t          g d	          }t          j        ||           t          g d
g d          }|                     dd                              |          }t          j        ||           d S )Nr   r   r   r   r    r   r	   r'   )NNr   r   )r   r1   r<   r3   rL   r   s        r   test_rolling_corr_diff_lengthr      s    					+	+	+B	Aq!f	%	%	%BZZqaZ0055b99F'''((H68,,,
YYY
/
/
/CZZqaZ0055c::F68,,,,,r   fc                 Z    |                      dd                              | d          S Nr;   r   r'   Tpairwiser1   r2   rU   s    r   rV   rV      )    199BA966::1t:LL r   c                 Z    |                      dd                              | d          S r   r1   r<   r   s    r   rV   rV      )    199BA966;;A;MM r   c           	      f   t          ddgddgddgddggt          dd	gd
          t          t          d          d                    }t          t          dd	gd
          t          j        |j        |j        gdd
g          d          } | |          }t          j        ||           d S )Nr   r   r    r	   	   r*   r   r6   r7   foonamer
   barr   rJ   namesfloat64)r   rJ   dtype)	r   r   ranger   from_productrJ   r   r3   r^   )r   r~   df_expected	df_results       r   2test_rolling_functions_window_non_shrinkage_binaryr      s     

Q!Q!Q"a)sCju---E!HH5)))
 
 
B
 sCju---%rx&<UENSSS  K
 "I)[11111r   c                 Z    |                      dd                              | d          S r   r   r   s    r   rV   rV      r   r   c                 Z    |                      dd                              | d          S r   r   r   s    r   rV   rV      r   r   c                 "   t                      }t          t          dgd          t          g d                    }|d                             d          |d<   t          t          j        |j        |j        g                    }t          t          j        |j        |j        gddg          t          dgd          d	          } | |          }t          j        ||            | |          }t          j        ||           d S )
Nr@   r   r   r   r   r   r   r   )rJ   r   r   )	r   r   astyper   r   rJ   r   r3   r^   )r   df1df2df1_expecteddf2_expected
df1_result
df2_results          r   *test_moment_functions_zero_length_pairwiser      s	    ++C
E3%e444E"5<Q<Q<Q
R
R
RC3xy))CH:#:CIs{;S#T#TUUUL%sy#+&>uenUUUse%(((  L 3J*l3333J*l33333r   c            	       P   e Zd Zej                            dd d g          d             Zej                            dd d d d d	 d
 g          d             Zej                            dd d d d d d g          d             Zej                            dd d d d d d g          d             Z	ej                            dd d d d d d g          d              Z
ej                            dd! d" d# d$ d% d& g          d'             Zd( Zd) Zd* Zd+S ),TestPairwiser   c                 *    |                                  S N)r2   r   s    r   rV   zTestPairwise.<lambda>   s    QUUWW r   c                 *    |                                  S r   )r<   r   s    r   rV   zTestPairwise.<lambda>   s     r   c                 @    ||          }t          j        |j        |j                   t          j        |j        |j                    ||          }|                                j        }|                                j        }t          j        ||d           d S NFcheck_dtyper3   assert_index_equalrJ   r   dropnavaluesassert_numpy_array_equalselfr   r   r   r8   rN   s         r   test_no_flexzTestPairwise.test_no_flex   s     ?##
flO,CDDD
fno.EFFF1*++ '??$$+
#FH%HHHHHHr   c                 R    |                                                      d          S NTr   	expandingr2   r   s    r   rV   zTestPairwise.<lambda>   s    akkmm'''66 r   c                 R    |                                                      d          S r   r   r<   r   s    r   rV   zTestPairwise.<lambda>   s    akkmm(($(77 r   c                 V    |                      d                              d          S Nr    rR   Tr   r   r   s    r   rV   zTestPairwise.<lambda>   s%    aiiqi))--t-<< r   c                 V    |                      d                              d          S r   r   r   s    r   rV   zTestPairwise.<lambda>   s%    aiiqi))...== r   c                 V    |                      d                              d          S Nr    comTr   ewmr2   r   s    r   rV   zTestPairwise.<lambda>   s#    aeeell&&&55 r   c                 V    |                      d                              d          S r   r   r<   r   s    r   rV   zTestPairwise.<lambda>   s#    aeeell'''66 r   c                     ||          }t          j        |j        j        d         |j        d           t          j        t	          |j        j        d                   t	          |j                                                             t          j        |j        |j                    ||          }|                                j        }|                                j        }t          j	        ||d           d S Nr   FrE   r   r   
r3   r   rJ   levelsr   r   uniquer   r   r   r   s         r   test_pairwise_with_selfz$TestPairwise.test_pairwise_with_self   s     ?##
L"O$9u	
 	
 	
 	
 	fl)!,--o-446677	
 	
 	
 	fno.EFFF1*++ '??$$+
#FH%HHHHHHr   c                 R    |                                                      d          S NFr   r   r   s    r   rV   zTestPairwise.<lambda>
  s    akkmm'''77 r   c                 R    |                                                      d          S r   r   r   s    r   rV   zTestPairwise.<lambda>  s    akkmm((%(88 r   c                 V    |                      d                              d          S Nr    rR   Fr   r   r   s    r   rV   zTestPairwise.<lambda>  s%    aiiqi))--u-== r   c                 V    |                      d                              d          S r   r   r   s    r   rV   zTestPairwise.<lambda>  s%    aiiqi))...>> r   c                 V    |                      d                              d          S Nr    r   Fr   r   r   s    r   rV   zTestPairwise.<lambda>  s#    aeeell&&&66 r   c                 V    |                      d                              d          S r   r   r   s    r   rV   zTestPairwise.<lambda>  s#    aeeell'''77 r   c                 @    ||          }t          j        |j        |j                   t          j        |j        |j                    ||          }|                                j        }|                                j        }t          j        ||d           d S r   r   r   s         r   test_no_pairwise_with_selfz'TestPairwise.test_no_pairwise_with_self  s     ?##
flO,ABBB
fno.EFFF1*++ '??$$+
#FH%HHHHHHr   c                 T    |                                                      |d          S r   r   rU   ys     r   rV   zTestPairwise.<lambda>"  s!    **1t*<< r   c                 T    |                                                      |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>#  s!    ++A+== r   c                 X    |                      d                              |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>$  s'    !,,00T0BB r   c                 X    |                      d                              |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>%  s'    !,,11!d1CC r   c                 X    |                      d                              |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>&  s%    1))!d);; r   c                 X    |                      d                              |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>'  s%    1**1t*<< r   c                     |||          }t          j        |j        j        d         |j        d           t          j        t	          |j        j        d                   t	          |j                                                              |||          }|                                j        }|                                j        }t          j	        ||d           d S r   r   )r   r   r   r#   r   r8   rN   s          r   test_pairwise_with_otherz%TestPairwise.test_pairwise_with_other  s     ?$899
L"O$9u	
 	
 	
 	
 	fl)!,--*299;;<<	
 	
 	
 1*,@AA '??$$+
#FH%HHHHHHr   c                 T    |                                                      |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>A  s!    **1u*== r   c                 T    |                                                      |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>B  s!    ++A+>> r   c                 X    |                      d                              |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>C  s'    !,,00U0CC r   c                 X    |                      d                              |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>D  s'    !,,11!e1DD r   c                 X    |                      d                              |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>E  s%    1))!e)<< r   c                 X    |                      d                              |d          S r   r   r   s     r   rV   zTestPairwise.<lambda>F  s%    1**1u*== r   c                    |j         j        r |||          nd }|t          j        d          5  t          j        dt
                     |j                            |j                  }|j                             |j                   }d d d            n# 1 swxY w Y   t          j	        |j        |           t          j	        |j         |           d S t          j        t          d          5   |||           d d d            n# 1 swxY w Y   t          j        t          d          5   |||           d d d            d S # 1 swxY w Y   d S )NT)recordignorez'arg1' columns are not unique)matchz'arg2' columns are not unique)r   	is_uniquewarningscatch_warningssimplefilterRuntimeWarningrJ   unionr3   r   pytestraises
ValueError)r   r   r#   r   r8   expected_indexexpected_columnss          r   test_no_pairwise_with_otherz(TestPairwise.test_no_pairwise_with_other>  s'    &0AAo3444 	
 (555  %h???!0!6!<!<=Q=W!X!X#2#:#@#@(0$ $ 	               !&,???!&.2BCCCCCz1PQQQ 9 9/#78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9z1PQQQ 9 9&8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s6   ABBB3DDD2EEEc                 P    |                                                      |          S r   r   r   s     r   rV   zTestPairwise.<lambda>c  s    **1-- r   c                 P    |                                                      |          S r   r   r   s     r   rV   zTestPairwise.<lambda>d  s    ++A.. r   c                 T    |                      d                              |          S Nr    rR   r   r   s     r   rV   zTestPairwise.<lambda>e  s"    !,,0033 r   c                 T    |                      d                              |          S r  r   r   s     r   rV   zTestPairwise.<lambda>f  s"    !,,11!44 r   c                 T    |                      d                              |          S Nr    r   r   r   s     r   rV   zTestPairwise.<lambda>g  s     1))!,, r   c                 T    |                      d                              |          S r  r   r   s     r   rV   zTestPairwise.<lambda>h  s     1**1-- r   c                     ||t          g d                    }t          j        |j        |j                   t          j        |j        |j                    ||t          g d                    }|                                j        }|                                j        }t          j        ||d            |t          g d          |          }t          j        |j        |j                   t          j        |j        |j                    |t          g d          |          }|                                j        }|                                j        }t          j        ||d           d S )N)r   r   r    r   Fr   )r   r3   r   rJ   r   r   r   r   r   s         r   test_pairwise_with_seriesz&TestPairwise.test_pairwise_with_series`  sX    ?F<<<$8$899
flO,ABBB
fno.EFFF1*F<<<,@,@AA '??$$+
#FH%HHHH6,,,''99
flO,ABBB
fno.EFFF1VLLL))+@AA '??$$+
#FH%HHHHHHr   c                 6   t          t          d          t          dd                    }|                    d                              |          }t          t
          j        gdz  t          dd                    }t          j        ||           d S )Nr   2020)periodsr   12H)	r   r   r   r1   r<   r-   r?   r3   rL   )r   rn   r8   rN   s       r   test_corr_freq_memory_errorz(TestPairwise.test_corr_freq_memory_error  s    588:fa#@#@#@AAA5!!&&q))26(Q,j.K.K.KLLL
vx00000r   c           
      r   t          j        t          d          t          d          t          d          g          }t          d          }t	          t          j        d                              dd          ||          }|                    d	          	                                }t          j        t          d          t          d          t          d          t          d          g          }t          j        t          d          t          d          t          d          g          }t	          t          j
        t          j        d
t
          j                  t          j        d
d          t          j        d
d          f          ||          }t          j        ||           d S )NabxyABr       r   rW   g?)alpha)r   r   g      @@gK\ǸO@)r   r   listr   r   r-   rk   reshaper   r2   vstackfullNaNr3   r^   )r   r   rJ   r~   r8   rN   s         r   test_cov_mulittindexz!TestPairwise.test_cov_mulittindex  sX    )4::tDzz4::*NOOary}},,Q22%QQQc""&&(('q4::tDzz4PT::(VWW)4::tDzz4::*NOOIGFBF++GFI..GFI..  

 

 

 	fh/////r   c                    t          j        ddgddggddg          }t          t          j        d          |	          }|                    d
                                          }t          t          j        t          j        t          j        t          j	        dt          j
                  d          ddgdz  ddgdz  gg d          |          }t          j        ||           d S )NMNPQr@   rA   r   )r   r	   r   r    r   )r   r	   )Nr@   rA   rW   )r   from_arraysr   r-   onesr1   r<   r?   repeatrk   int64r3   r^   )r   r   r~   r8   rN   s        r   $test_multindex_columns_pairwise_funcz1TestPairwise.test_multindex_columns_pairwise_func  s    (3*sCj)A#sTTTrwv888A##%%F(Ibi:::A>>#JN#JN
 '&&   
 
 
 	fh/////r   N)__name__
__module____qualname__r   markparametrizer   r   r   r   r  r  r  r  r)  r   r   r   r   r      sV       [S#4#46H6H"IJJI I KJI [6677<<==5566	

 
I I
 
I* [7788==>>6677	

 
I I
 
I [<<==BBCC;;<<	

 
I I
 
I( [==>>CCDD<<==	

 
9 9
 
9. [--..3344,,--	

 
I I
 
I,1 1 10 0 020 0 0 0 0r   r   )!r   numpyr-   r   pandasr   r   r   r   r   pandas._testing_testingr3   pandas.core.algorithmsr   fixturer   r   r#   r9   rB   r-  r.  rO   re   r   ro   r   r   r   r   r   r   r   r   r   <module>r5     s\                            , , , , , , 	Aq6Aq6Aq6Aq62QFCCC	Aq6Aq6Aq6Aq62QFCCC	Aq6Aq6Aq6Aq62S#JGGG	Aq6Aq6Aq6Aq62S!HEEE	Aq6Aq6Aq6Aq62S!HEEE	Aq6Aq6Aq6Aq62S!HEEE	C:SzC:SzBQPSHUUU	As8aX3x!S:QHMMM	Aq6Aq6Aq6As84sCjIII
    
 G G G
   G G G2 2 2" %11@ @ 21@ FE?33% % 43%, 5588,,C C -,C; ; ;.
- 
- 
-
- 
- 
- MMNN 2 2 2  MMNN 4 4 4&\0 \0 \0 \0 \0 \0 \0 \0 \0 \0r   