
    bMh~D                     \   d dl m Z mZ d dlmZmZmZ d dlZd dl	Z	d dl
mZmZ d dlmZ  G d d          Zd Z e ej        dd	           ej        dd	           ej        dd	           ej        dd	           ej        dd	           ej        dd	                    d
             ZdS )    )datetime	timedelta)assumegiven
strategiesN)Index
RangeIndexc                    x   e Zd Zej                            dg d          d             Zd Zd Zd Z	d Z
ej                            d ed	d
d           ed	d
d           ed	d
d           ed	d
d          f ed	d
d           eddd           ed	dd           ed	dd          f ed	d
d           ed
dd           ed	dd           ed	dd          f ed	dd           ed	dd           ed	dd           ed	dd          f ed	dd           eddd           eddd           ed	dd          f ed	d
d           edd
d           ed	d
d           e e ed	d
d                     e edd
d                    z             f ed	dd           eddd           ed	dd           e e ed	dd                     e eddd                    z             f ed	dd           eddd           eddd           e e ed	dd                     e eddd                    z             f ed	dd           eddd           eddd           e e ed	dd                     e eddd                    z             f ed	dd           ed	dd           ed	dd           ed	dd          f ed	dd           eddd           edd
d           e e ed	dd                    dgz             f ed	dd           eddd            eddd           e e ed	dd                    ddgz             f ed	           ed	           ed	           ed	          f ed	dd           ed	           ed	dd           ed	dd          f ed	dd           edd!d"           ed	d#d           ed	d#d          f ed	dd           edd$d#           eddd           e e ed	dd                    ddgz             f ed	dd           ed	d%d&           ed'dd           ed	dd          f ed	dd           edd(d
           ed	d(d           ed	d
d          f ed	d
d           edd)d           edd
d           eg d*          f ed	d+d           eddd           eg d,           eg d,          f ed	d
d           eg ej        -           ed	d
d           ed	d
d          f ed	           eg d.           eg d.           eg d.          f ed	d
           ed	d           ed	d
           ed	d
          fgd/ 0          d1             Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd:S );TestRangeIndexSetOpsdtype)Nint64uint64c                    t          dddd          }t          ||          }|                    t          j                  }|                    |          }t          j        ||d           |                    |          }t          j        ||d           |                    |d	d                    }t          j        ||d	d          d           |d	d                              |          }t          j        ||d	d          d           |                    |d d                   }t          j        ||d d         d           |d d                             |          }t          j        ||d d         d           d S )
Nr         foostartstopstepnamer   Texact   )r	   r   astypenpfloat64intersectiontmassert_index_equal)selfr   indexfltresults        g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexes/ranges/test_setops.py"test_intersection_mismatched_dtypez7TestRangeIndexSetOps.test_intersection_mismatched_dtype   s    !%@@@e5)))ll2:&& ##C((
fe48888!!%((
fc6666 ##CG,,
fc!""gT::::QRR%%e,,
fc!""gT:::: ##CG,,
fc"1"gT::::RaR%%e,,
fc"1"gT::::::    c                    t          ddd|d                   }|                    |d d                             |d                   |          }t          j        ||d d                             |d                   d           |d d                             |                    |d                   |          }t          j        ||d d                             |d                   d           d S )	Nr   r   r   r   r   sortTr   )r	   r   renamer    r!   )r"   r+   namesr#   r%   s        r&   test_intersection_emptyz,TestRangeIndexSetOps.test_intersection_empty3   s    !%(CCC ##E"1"I$4$4U1X$>$>T#JJ
feBQBi&6&6uQx&@&@MMMM rr''U1X(>(>T'JJ
feBQBi&6&6uQx&@&@MMMMMMr(   c           
         t          ddd          }t          t          j        dd                    }|                    ||          }t          t          j        t          j        |j        |j                                      }t          j	        ||           |                    ||          }t          t          j        t          j
        t          j        |j        |j                                                }t          j	        ||           t          dd          }|                    ||          }t          t          j        t          j        |j        |j                                      }t          j	        ||d	           t          d
dd          }|                    ||          }t          t          j        t          j        |j        |j                                      }t          j	        ||d	           |                    ||          }t          j	        ||d	           t          ddd          }t          d
dd          }|                    t                                        |                    t                    |          }|                    ||                              t                    }t          j	        ||           |                    ||                              t                    }t          j	        ||           t          d
d          }t          d
ddd          }|                    ||          }t          dddd          }t          j	        ||           t          ddd          }|                    ||          }t          ddd          }t          j	        ||           t          ddd          }|                    ||          }t          ddd          }t          j	        ||           |                    ||          }t          j	        ||           d S )Nr   r   r   r   r   r   r      r*   equivr      
   r   r   )r	   r   r   aranger   r+   intersect1dvaluesr    r!   asarrayr   int)r"   r+   r#   otherr%   expectedfirsts          r&   test_intersectionz&TestRangeIndexSetOps.test_intersection?   s   !444bi1oo&&##E#55el!K!KLLMM
fh///##E#55GBJr~elELIIJJKK
 
 	fh/// 1a  ##E#55el!K!KLLMM
fhg>>>> 1a$$##E#55el!K!KLLMM
fhg>>>> ##E#55
fhg>>>> 2r2&&1b"%%<<$$11%,,s2C2C$1OO##E#55<<SAA
fh/// ##E#55<<SAA
fh///15))) 1b!%000##E#55aAE222
fh///2r2&&##E#55aA&&
fh/// 1a####E#55aA&&
fh///##E#55
fh/////r(   c                     t          ddd|d                   }t          ddd|d                   }|                    ||          }t          ddd|d                   }t          j        ||           d S )Nr   r5   r   r   r8      r*   )r	   r   r    r!   )r"   r+   r-   r#   r?   r%   r@   s          r&   %test_intersection_non_overlapping_gcdz:TestRangeIndexSetOps.test_intersection_non_overlapping_gcd~   s    1b!%(3331b!%(333##E#55aAE!H555
fh/////r(   c                    t          ddd          }t          d t          d          D             t                    }|                    ||          }t          t          j        ||f                    }t          j        ||           |                    ||          }t          t          j        ||f                    }t          j        ||           d S )	Nr   r   r   r0   c                 T    g | ]%}t          j                    t          |          z   &S  )r   nowr   ).0is     r&   
<listcomp>zATestRangeIndexSetOps.test_union_noncomparable.<locals>.<listcomp>   s)    GGGx|~~	!4GGGr(   rD   r   r*   )	r	   r   rangeobjectunionr   concatenater    r!   )r"   r+   r#   r?   r%   r@   s         r&   test_union_noncomparablez-TestRangeIndexSetOps.test_union_noncomparable   s    !444GGeAhhGGGvVVVU..7788
fh///U..7788
fh/////r(   z/idx1, idx2, expected_sorted, expected_notsortedr   r5   r   r3   r   ir4   ir            rD   r6      id   ir9   iiir7         f   2   iir1   i)r   r3   r9      )r   r   r   rD   r   )r   r3   r1   c                 N    t          | t                    rt          |           n| S )N)
isinstancer	   repr)xs    r&   <lambda>zTestRangeIndexSetOps.<lambda>  s    Az!:!:Ad1ggg r(   )idsc                    |                     |d           }t          j        ||d           |                     |d          }t          j        ||d           |                     |d           }t          |j        |j                                       |d           }t          j        ||d           t          j        ||d           d S )Nr*   Tr   Fr8   r2   )rO   r    r!   r   _valuesr   )r"   idx1idx2expected_sortedexpected_notsortedres1res2res3s           r&   test_union_sortedz&TestRangeIndexSetOps.test_union_sorted   s    Z zz$Tz**
dO4@@@@zz$Uz++
d$6dCCCCzz$Tz**T\	22288D8II
dO4@@@@
dO7CCCCCCr(   c                     t          t          ddd                    }t          t          ddd                    }|                    |          }t          g d          }t	          j        ||d           d S )	Nr   r   rD   r   rU   )
r   r   rD   r3      	   rT            Tr   )r	   rM   rO   r   r    r!   r"   leftrightr%   r@   s        r&   test_union_same_step_misalignedz4TestRangeIndexSetOps.test_union_same_step_misaligned*  ss    %2q//**5B??++E"";;;<<
fhd;;;;;;r(   c                    t          j        t          dd          d          }|                    |          }t          j        t          d          d          }t	          j        ||d           |                    |                    d                    }t	          j        ||                    d           d           |                    |d d	                   }t	          j        ||d	d          d           |                    |d
d                    }t	          j        ||d d
         d           |d d d                             |d
d                    }t	          j        ||d d
         d           |d d d                             |d
d          d          }t	          j        ||d d
         d d d         d           |d d d                             |d
d          d d d                   }t	          j        ||d d
         d           |d d d                             |d
d          d d d         d          }t	          j        ||d d
         d d d         d           |                    |dd                   }t          g dd          }t	          j        ||d           d S )Nr   r5   r   r8   r   Tr   barr]   r\   r4   Fr*   r   r1   )r   r      ro   rp   )r	   
from_rangerM   
differencer    r!   r,   r   r"   objr%   r@   s       r&   test_differencez$TestRangeIndexSetOps.test_difference3  s    #E!RLLu===$$(q>>>
fhd;;;; 6 677
fcjj&6&6dCCCCBQB((
fc!""gT::::BCC))
fc#2#hd;;;; TTrT%%c"##h//
fc#2#hd;;;;TTrT%%c"##hU%;;
fc#2#htttnDAAAATTrT%%c"##htttn55
fc#2#hd;;;;TTrT%%c"##htttn5%AA
fc#2#htttnDAAAAAaC))u555
fhd;;;;;;r(   c                    t          t          d                    d d d         }t          t          dd                    }|                    |          }t          t          d                    }t          j        ||d           |                    |d          }|d d d         }t          j        ||d           t          dd	          }|                    |d           }|d d d         }t          j        ||d           d S )
NrD   r4   r]   Tr   Fr*   r5   rT   )r   rM   r|   r    r!   )r"   idxr?   r%   r@   s        r&   test_difference_sortz)TestRangeIndexSetOps.test_difference_sortW  s     E!HHooddd#eAqkk""&&q??
fhd;;;;E22DDbD>
fhd;;;; b"D11ttt9
fhd;;;;;;r(   c                 r   t          j        t          dd          d          }|                    |d d d                   }|dd d         }t	          j        ||d           |d d d                             |d d d         d	
          }t	          j        ||d d d         d           |                    |dd d                   }|d d d         }t	          j        ||d           |d d d                             |dd d         d	
          }t	          j        ||d d d         d           d S )Nr   r5   r   r8   r   Tr   r4   Fr*   )r	   r{   rM   r|   r    r!   r}   s       r&   test_difference_mismatched_stepz4TestRangeIndexSetOps.test_difference_mismatched_stepk  sE   #E!RLLu===CCaC))qt!t9
fhd;;;;TTrT%%c##A#hU%;;
fhtttnDAAAAADqD	**sss8
fhd;;;;TTrT%%c!$Q$ie%<<
fhtttnDAAAAAAr(   c                 *   t          t          d                    }t          t          dd                    }|                    |          }t          ddd          }|                                ddgk    sJ t	          j        ||d           d S )NrD   r   r]   r   Tr   )r	   rM   r|   tolistr    r!   rt   s        r&   4test_difference_interior_overlap_endpoints_preservedzITestRangeIndexSetOps.test_difference_interior_overlap_endpoints_preserved|  s    %((##5A;;''''aA&&  QF****
fhd;;;;;;r(   c                     t          ddd          }t          ddd          }|                    |          }t          ddd          }|                                ddgk    sJ t          j        ||d	
           d S )Nir   rz   rq   ir\   r4   r1   Tr   )r	   r|   r   r    r!   rt   s        r&   4test_difference_endpoints_overlap_interior_preservedzITestRangeIndexSetOps.test_difference_endpoints_overlap_interior_preserved  s    "b!$$2r2&&''b"a((  RG++++
fhd;;;;;;r(   c           	      ,   t          t          d                    }|dd         }|                    |          }t          g d          }t          j        ||d           |d d d         }|                    |          }t          g d          }t          j        ||d           t          t          d                    }|d dd	         }|                    |          }t          g d
t          t          dd                    z             }t          j        ||d           |ddd	         }|                    |          }t          g dt          t          dd                    z             }t          j        ||d           d S )Nr5   r]   rD   )	r   r   r   rD   r3   r1   rz   ro   rp   Tr   )r   r   rD   r3   rz   ro   r   r   )r   r]   r3   rz   rp   r   rS   )r   r   rD   r1   ro   r5   )r   rM   r|   r    r!   list)r"   r   r?   r%   r@   r~   s         r&   'test_difference_interior_non_preservingz<TestRangeIndexSetOps.test_difference_interior_non_preserving  s   E"IIAaC&&44455
fhd;;;; CCaC&&+++,,
fhd;;;; E"IIERE
&&4b"+>+>>??
fhd;;;;AbF&&,,,tE"bMM/B/BBCC
fhd;;;;;;r(   c                    t          j        t          dd          d          }|                    |          }t          j        t          d          d          }t	          j        ||           |                    |                    d                    }t	          j        ||                    d                      |d d                             |dd                    }t          g d	d          }t	          j        ||d
           t          j        t          dd                    }|                    |          }t          j        t          dd                    }t	          j        ||           |                    |dd                    }t          g d          }t	          j        ||d
           d S )Nr   r5   r   r8   r   ry   r6   r   )r   r   ro   rp   Tr      )r   r   r]   rD   r3   r1   rz   ro   rp   rS   rT   rq      )r	   r{   rM   symmetric_differencer    r!   r,   r   )r"   ru   r%   r@   rv   s        r&   test_symmetric_differencez.TestRangeIndexSetOps.test_symmetric_difference  s    $U1b\\>>>**400(q>>>
fh///**8??5+A+ABB
fdkk$&7&7888crc//QRR99E222
fhd;;;;%eBmm44**511(q"66
fh///**5955DDDEE
fhd;;;;;;r(   N)__name__
__module____qualname__pytestmarkparametrizer'   r.   rB   rE   rQ   r	   r   r   rM   r   r   rm   rw   r   r   r   r   r   r   r   rH   r(   r&   r   r      s       [W&?&?&?@@; ; A@;8
N 
N 
N=0 =0 =0~0 0 0
0 
0 
0 [9 
1b!$$
1b!$$
1b!$$
1b!$$	 
1b!$$
1b!$$
1b!$$
1b!$$	 
1b!$$
2r1%%
1b!$$
1b!$$	 
1c2&&
1c2&&
1c2&&
1c2&&	 
1c2&&
3R((
31%%
1c2&&	 
1b!$$
1b!$$
1b!$$dd55B??++dd55B??.C.CCDD	 
1b!$$
1b!$$
1b!$$dd55B??++dd55B??.C.CCDD	 
1b!$$
2r1%%
2r1%%dd55B??++dd55R3C3C.D.DDEE	 
1c2&&
2sB''
31%%dd55C,,--UU2sB5G5G0H0HHII	 
1c1%%
1c2&&
1c1%%
1c1%%	 
1dB''
1dC((
3A&&dd55D"--..!455	 
1c2&&
1c2&&
31%%dd55C,,--C899	 Z]]JJqMM::a==**Q--H
1c2&&
1
1c2&&
1c2&&	 
1c1%%
3S))
1c1%%
1c1%%	 
1dB''
4S))
4A&&dd55D"--..$:;;	 
1dB''
1c2&&
31%%
1dB''	 
1a##
1a$$
1a##
1b!$$	 
1b!$$
2r3''
2r1%%jjj!!	 
1a##
1a##lll##lll##	 
1b!$$b)))
1b!$$
1b!$$	 
1iii  iii  iii  	 
1b!!
1a  
1b!!
1b!!	CG	
P BAU  K KX
D 
DYK KX
D< < <"< "< "<H< < <(B B B"< < << < << < <6< < < < <r(   r   c                     t          | t                    sHt          |           dk    r7| dd         | dd         z
  }||d         k                                    rJ dS dS dS )zp
    Check that we either have a RangeIndex or that this index *cannot*
    be represented as a RangeIndex.
    r   Nr4   r   )r_   r	   lenall)r#   diffs     r&    assert_range_or_not_is_rangeliker     sr    
 eZ(( +SZZ!^^SbSzE!""I%DGO((*****+ +^^**r(   rR   r   c                 j   t          |dk               t          |dk               t          | ||          }t          |||          }|                    |d           }t          |           t	          |                                          }	t	          |                                          }
|	                    |
d           }t          j        ||d           |                    |d          }t          |           |	                    |
d          }t          j        ||d           d S )Nr   r*   r2   r   F)r   r	   r|   r   r   to_numpyr    r!   )start1stop1step1start2stop2step2ru   rv   r%   
left_int64right_int64alts               r&   test_range_differencer     s"    5A:
5A:feU++Dvue,,E__U_..F$V,,,t}}''J(())K


$

7
7C&#W5555__U_//F$V,,,


%

8
8C&#W555555r(   )r   r   
hypothesisr   r   r   stnumpyr   r   pandasr   r	   pandas._testing_testingr    r   r   integersr   rH   r(   r&   <module>r      s         
         
                  l< l< l< l< l< l< l< l<^+ + + BKRBKRBKRBKRBKRBKR 6 6 6 6 6r(   