
    I j                     x   S SK Jr  S SKrS SKrS SKJr  S SKJrJ	r	  S SK
Jr  S r\R                  " \" S5      \" S5      S/S	9S
 5       r\R                  " \R                   " SSS9\R                   " SSS9\R                   " SSS9\R"                  " S SSSS\R$                  /SS9/S	9S 5       r " S S5      rg)    )permutationsN)IntervalTree)IS64WASMc                 x    [         R                  R                  [        (       + SS9n[         R                  " XS9$ )z}
Skip parameters in a parametrize on 32bit systems. Specifically used
here to skip leaf_size parameters related to GH 23440.
z$GH 23440: int type mismatch on 32bitreason)marks)pytestmarkskipifr   param)r   r
   s     ځ/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval_tree.pyskipif_32bitr      s/    
 KK4x0VWE<<++          
   )paramsc                     U R                   $ )zX
Fixture to specify IntervalTree leaf_size parameter; to be used with the
tree fixture.
)r   )requests    r   	leaf_sizer      s     ==r      int64dtypeuint64float64      c                 4    U R                   n[        X"S-   US9$ )Nr   )r   )r   r   )r   r   lefts      r   treer#   !   s     ==DQh)<<r   c                   t   \ rS rSrS r\R                  R                  SSS/5      S 5       rS r	\R                  R                  SSS/5      S 5       r
\R                  R                  S	/ S
Q5      S 5       r\R                  R                  S\" S5      \" S5      \" S5      S/5      S 5       r\R                  R                  S\R                  " / SQSS9\R                  " / SQ5      S4\R                  " / SQSS9\R                  " / SQ5      S4\R                  " SS\R                   /5      \R                  " SS\R                   /5      S4\R                  " / SQSS9\R                  " / SQ5      S4\R                  " SS \R                   /5      \R                  " SS!\R                   /5      S4/5      \R                  R                  S"S# \" \" S!5      5       5       5      S$ 5       5       r\R                  R                  S"S% \" \" S!5      5       5       5      S& 5       r\R                  R                  S'\R                  " / SS9\R                  " / SS94\R                  " S/SS9\R                  " S/SS94\R                  " \R                   /5      \R                  " \R                   /5      4\R                  " \R                   /S!-  5      \R                  " \R                   /S!-  5      4/5      S( 5       r\R                  R-                  \(       + S)S*9S+ 5       r\R                  R3                  \S)S*9\R                  R                  S\R6                  * S,/S,S-/S.4\R6                  * S//S/S0/S/4S/S0/S0\R6                  /S.4S,S-/S-\R6                  /S-4/5      S1 5       5       rS2rg3)4TestIntervalTree.   c                 ^   UR                  [        R                  " / SQ5      5      n[        R                  " / SQSS9n[        R                  " X#5        [
        R                  " [        SS9   UR                  [        R                  " S/5      5        S S S 5        g ! , (       d  f       g = f)N)      ?g      @      @)r   r    intpr   6'indexer does not intersect a unique set of intervals'matchg      @)get_indexernparraytmassert_numpy_array_equalr   raisesKeyError)selfr#   resultexpecteds       r   test_get_indexer!TestIntervalTree.test_get_indexer/   su    !!"((?";<88Jf5
##F5]]T
 RXXse_-
 
 
s   .'B
B,z!dtype, target_value, target_dtype)r   l           r   )r   r*   r   c                    [         R                  " SS/US9[         R                  " SS/US9pT[        XE5      nUR                  [         R                  " U/US95      n[         R                  " S/SS9n[        R
                  " Xx5        g )Nr   r   r   r   r*   r+   )r0   r1   r   r/   r2   r3   )	r6   r   target_valuetarget_dtyper"   rightr#   r7   r8   s	            r   test_get_indexer_overflow*TestIntervalTree.test_get_indexer_overflow9   sp    
 hh1vU3RXXq!fE5ReD(!!"((L>"NO88RD/
##F5r   c                 *   UR                  [        R                  " / SQ5      5      u  p#US S n[        R                  " S/SS9n[        R                  " XE5        [        R
                  " USS 5      n[        R                  " SS/SS9n[        R                  " XE5        [        R
                  " USS  5      n[        R                  " S/SS9n[        R                  " XE5        Un[        R                  " S/SS9n[        R                  " XE5        g )	N)r(          @r)   r   r   r+   r   r   r*   r   )get_indexer_non_uniquer0   r1   r2   r3   sort)r6   r#   indexermissingr7   r8   s         r   test_get_indexer_non_unique,TestIntervalTree.test_get_indexer_non_uniqueE   s    66rxx7PQ!88QCv.
##F51&88QF&1
##F5%88RD/
##F588QCv.
##F5r   c                 v   [         R                  " SS/US9[         R                  " SS/US9pT[        XE5      n[         R                  " U/US9nUR                  U5      u  p[         R                  " S/SS9n
[        R
                  " X5        [         R                  " S/SS9n[        R
                  " X5        g )Nr   r   r   r   r   r*   r+   )r0   r1   r   rC   r2   r3   )r6   r   r<   r=   r"   r>   r#   targetresult_indexerresult_missingexpected_indexerexpected_missings               r   $test_get_indexer_non_unique_overflow5TestIntervalTree.test_get_indexer_non_unique_overflowX   s    
 hh1vU3RXXq!fE5ReD(<.=)-)D)DV)L&88RD7
##NE88QCv6
##NEr   r   )r   r   r   c                 0   [         R                  " / SQUS9n[        X"S-   5      n[        R                  " [
        SS9   UR                  [         R                  " S/5      5        S S S 5        UR                  [         R                  " S/5      5      u  pE[         R                  " U5      n[         R                  " / SQSS9n[        R                  " Xg5        Un[         R                  " / SS9n[        R                  " Xg5        g ! , (       d  f       N= f)	N)r   r   r   r   r   r,   r-         ?r   r   r   r+   )r0   r1   r   r   r4   r5   r/   rC   rD   r2   r3   )r6   r   r"   r#   rE   rF   r7   r8   s           r   test_duplicates TestIntervalTree.test_duplicatesh   s    xx	/D(+]]T
 RXXse_-

  66rxxG!88IV4
##F588Bf-
##F5
 
s   'D
Dr   r   r   d   i'  c                    [         R                  " SSS9nUR                  S5      nS[         R                  " S5      -  R                  S5      n[	        X3S-   XS9n[
        R                  " XFR                  US-   5      5        UR                  (       a  UOUn[
        R                  " XvR                  US	-   5      5        UR                  (       a  UOUn[
        R                  " XvR                  US-   5      5        g )
Ni  r   r   r+   r*   rR   )closedr   g      ?        )
r0   arangeastypeonesr   r2   r3   r/   closed_leftclosed_right)r6   rX   r   xfound	not_foundr#   r8   s           r   test_get_indexer_closed(TestIntervalTree.test_get_indexer_closed{   s     IId), "''$-'//7	A3wvK
##E+;+;AH+EF ,,5)
##H.>.>q3w.GH --59
##H.>.>q3w.GHr   zleft, right, expected)r   r   r    r   r   )r   r   r   TrS   )r   r    r   r   r   r    )r   r   r    )r   r   r   Fr   r   orderc              #   8   #    U  H  n[        U5      v   M     g 7fNlist.0r_   s     r   	<genexpr>TestIntervalTree.<genexpr>        &O8N1tAww8N   c                 F    [        X2   XB   US9nUR                  nXuL d   eg )NrX   r   is_overlapping)r6   rX   rd   r"   r>   r8   r#   r7   s           r   test_is_overlapping$TestIntervalTree.test_is_overlapping   s-     DKfE$$!!!r   c              #   8   #    U  H  n[        U5      v   M     g 7frf   rg   ri   s     r   rk   rl      rm   rn   c                     [         R                  " SSS9[         R                  " SS5      pC[        X2   XB   US9nUR                  nUS:H  nXgL d   eg)	z*shared endpoints are marked as overlappingr   r   r   r   r    rp   bothN)r0   rZ   r   rr   )r6   rX   rd   r"   r>   r#   r7   r8   s           r   test_is_overlapping_endpoints.TestIntervalTree.test_is_overlapping_endpoints   sS     ii1299Q?eDKfE$$V#!!!r   zleft, rightc                 :    [        X#US9nUR                  SL d   eg )Nrp   Frq   )r6   rX   r"   r>   r#   s        r   test_is_overlapping_trivial,TestIntervalTree.test_is_overlapping_trivial   s$     D7""e+++r   zGH 23440r   c                 H   [         R                  " SSS9[         R                  " [         R                  5      R                  /S-  p![        X5      nUR                  R                  nS[         R                  " [         R                  5      R                  -   S-  nXE:X  d   eg )Ne   r   r   2   r   )r0   rZ   iinfor   maxr   rootpivot)r6   r"   r>   r#   r7   r8   s         r   test_construction_overflow+TestIntervalTree.test_construction_overflow   sy     ii73bhhrxx6H6L6L5MPS5SeD( "((+///14!!!r   r(   rB   rY   g       g      c                 b    [        US-  US-  5      nUR                  R                  nXS:X  d   eg )Nr~   )r   r   r   )r6   r"   r>   r8   r#   r7   s         r   !test_inf_bound_infinite_recursion2TestIntervalTree.test_inf_bound_infinite_recursion   s1     D3J4!!!r    N)__name__
__module____qualname____firstlineno__r9   r   r   parametrizer?   rG   rO   rT   r   rb   r0   r1   nanr   rangers   rx   r{   r   r   r   xfailr   infr   __static_attributes__r   r   r   r%   r%   .   s   . [[+	')@A6	66& [[+	')@A
F	
F [[W&DE6 F6$ [[l1o|B'7c9JERII [[XXiw/)1DdKXXiw/)1DdKXXq!RVVn%rxxArvv'?FXXiw/)1DeLXXq!RVVn%rxxArvv'?G	
	 [[W&OU1X8N&OP" Q	" [[W&OU1X8N&OP" Q" [[XXb("((2W*EFXXqc)288QCw+GHXXrvvh266(!34XXrvvhl#RXXrvvhl%;<		
,,
 [[D4" 5" [[tJ/[[vvgs^c3Z-vvgt_tTlD1D\D"&&>3/3Z#rvv,		
" 0"r   r%   )	itertoolsr   numpyr0   r   pandas._libs.intervalr   pandas.compatr   r   pandas._testing_testingr2   r   fixturer   rZ   r1   r   r#   r%   r   r   r   <module>r      s    "   .
 , Qa"=> ? 
		!7#
		!8$
		!9%
!Q1a(	:	==
b" b"r   