
    Owg~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y)    )datetime	timedelta)assumegiven
strategiesN)Index
RangeIndexc                       e Zd Zej                  j                  dg d      d        Zd Zd Zd Z	d Z
ej                  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y:);TestRangeIndexSetOpsdtype)Nint64uint64c                    t        dddd      }t        ||      }|j                  t        j                        }|j                  |      }t        j                  ||d       |j                  |      }t        j                  ||d       |j                  |d	d        }t        j                  ||d	d  d       |d	d  j                  |      }t        j                  ||d	d  d       |j                  |d d       }t        j                  ||d d d       |d d j                  |      }t        j                  ||d d d       y )
Nr         foostartstopstepnamer   Texact   )r	   r   astypenpfloat64intersectiontmassert_index_equal)selfr   indexfltresults        ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexes/ranges/test_setops.py"test_intersection_mismatched_dtypez7TestRangeIndexSetOps.test_intersection_mismatched_dtype   s4    !%@e5)ll2::& ##C(
fe48!!%(
fc6 ##CG,
fc!"gT:QR%%e,
fc!"gT: ##CG,
fc"1gT:Ra%%e,
fc"1gT:    c                 |   t        ddd|d         }|j                  |d d j                  |d         |      }t        j                  ||d d j                  |d         d       |d d j                  |j                  |d         |      }t        j                  ||d d j                  |d         d       y )	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 ##E"1I$4$4U1X$>T#J
feBQi&6&6uQx&@M r''U1X(>T'J
feBQi&6&6uQx&@Mr(   c           
      (   t        ddd      }t        t        j                  dd            }|j	                  ||      }t        t        j
                  t        j                  |j                  |j                                    }t        j                  ||       |j	                  ||      }t        t        j
                  t        j                  t        j                  |j                  |j                                          }t        j                  ||       t        dd      }|j	                  ||      }t        t        j
                  t        j                  |j                  |j                                    }t        j                  ||d	       t        d
dd      }|j	                  ||      }t        t        j
                  t        j                  |j                  |j                                    }t        j                  ||d	       |j	                  ||      }t        j                  ||d	       t        ddd      }t        d
dd      }|j                  t              j	                  |j                  t              |      }|j	                  ||      j                  t              }t        j                  ||       |j	                  ||      j                  t              }t        j                  ||       t        d
d      }t        d
ddd      }|j	                  ||      }t        dddd      }t        j                  ||       t        ddd      }|j	                  ||      }t        ddd      }t        j                  ||       t        ddd      }|j	                  ||      }t        ddd      }t        j                  ||       |j	                  ||      }t        j                  ||       y )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?   sL   !4bii1o&##E#5ell!KLM
fh/##E#5GGBJJr~~ellELLIJK
 	fh/ 1a ##E#5ell!KLM
fhg> 1a$##E#5ell!KLM
fhg> ##E#5
fhg> 2r2&1b"%<<$11%,,s2C$1O##E#5<<SA
fh/ ##E#5<<SA
fh/15) 1b!%0##E#5aAE2
fh/2r2&##E#5aA&
fh/ 1a###E#5aA&
fh/##E#5
fh/r(   c                     t        ddd|d         }t        ddd|d         }|j                  ||      }t        ddd|d         }t        j                  ||       y )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~   sc    1b!%(31b!%(3##E#5aAE!H5
fh/r(   c           	         t        ddd      }t        t        d      D cg c]"  }t        j                         t        |      z   $ c}t              }|j                  ||      }t        t        j                  ||f            }t        j                  ||       |j                  ||      }t        t        j                  ||f            }t        j                  ||       y c c}w )Nr   r   r   r0   rD   r   r*   )r	   r   ranger   nowr   objectunionr   concatenater    r!   )r"   r+   r#   ir?   r%   r@   s          r&   test_union_noncomparablez-TestRangeIndexSetOps.test_union_noncomparable   s    !4eAhGx||~	!4GvVU.78
fh/U.78
fh/ Hs   'C(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                 <    t        | t              rt        |       S | S )N)
isinstancer	   repr)xs    r&   <lambda>zTestRangeIndexSetOps.<lambda>  s    Az!:d1g  r(   )idsc                    |j                  |d       }t        j                  ||d       |j                  |d      }t        j                  ||d       |j                  |d       }t        |j                  |j
                        j                  |d       }t        j                  ||d       t        j                  ||d       y )Nr*   Tr   Fr8   r2   )rJ   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zz$Tz*T\\		288D8I
dO4@
dO7Cr(   c                     t        t        ddd            }t        t        ddd            }|j                  |      }t        g d      }t	        j
                  ||d       y )	Nr   r   rD   r   rQ   )
r   r   rD   r3      	   rP            Tr   )r	   rG   rJ   r   r    r!   r"   leftrightr%   r@   s        r&   test_union_same_step_misalignedz4TestRangeIndexSetOps.test_union_same_step_misaligned*  sQ    %2q/*5B?+E";<
fhd;r(   c                 x   t        j                  t        dd      d      }|j                  |      }t        j                  t        d      d      }t	        j
                  ||d       |j                  |j                  d            }t	        j
                  ||j                  d       d       |j                  |d d	       }t	        j
                  ||d	d  d       |j                  |d
d        }t	        j
                  ||d d
 d       |d d d   j                  |d
d        }t	        j
                  ||d d
 d       |d d d   j                  |d
d  d      }t	        j
                  ||d d
 d d d   d       |d d d   j                  |d
d  d d d         }t	        j
                  ||d d
 d       |d d d   j                  |d
d  d d d   d      }t	        j
                  ||d d
 d d d   d       |j                  |dd       }t        g dd      }t	        j
                  ||d       y )Nr   r5   r   r8   r   Tr   barrY   rX   r4   Fr*   r   r1   )r   r      rk   rl   )r	   
from_rangerG   
differencer    r!   r,   r   r"   objr%   r@   s       r&   test_differencez$TestRangeIndexSetOps.test_difference3  s    ##E!RLu=$((q>
fhd; 67
fcjj&6dCBQ(
fc!"gT:BC)
fc#2hd; TrT%%c"#h/
fc#2hd;TrT%%c"#hU%;
fc#2httnDATrT%%c"#httn5
fc#2hd;TrT%%c"#httn5%A
fc#2httnDAAa)u5
fhd;r(   c                    t        t        d            d d d   }t        t        dd            }|j                  |      }t        t        d            }t        j                  ||d       |j                  |d      }|d d d   }t        j                  ||d       t        dd	      }|j                  |d       }|d d d   }t        j                  ||d       y )
NrD   r4   rY   Tr   Fr*   r5   rP   )r   rG   rx   r    r!   )r"   idxr?   r%   r@   s        r&   test_difference_sortz)TestRangeIndexSetOps.test_difference_sortW  s     E!Hodd#eAqk"&q?
fhd;E2DbD>
fhd; b"D1tt9
fhd;r(   c                    t        j                  t        dd      d      }|j                  |d d d         }|dd d   }t	        j
                  ||d       |d d d   j                  |d d d   d	
      }t	        j
                  ||d d d   d       |j                  |dd d         }|d d d   }t	        j
                  ||d       |d d d   j                  |dd d   d	
      }t	        j
                  ||d d d   d       y )Nr   r5   r   r8   r   Tr   r4   Fr*   )r	   rw   rG   rx   r    r!   ry   s       r&   test_difference_mismatched_stepz4TestRangeIndexSetOps.test_difference_mismatched_stepk  s   ##E!RLu=CaC)qt!t9
fhd;TrT%%c#A#hU%;
fhttnDAADqD	*ss8
fhd;TrT%%c!$Q$ie%<
fhttnDAr(   c                     t        t        d            }t        t        dd            }|j                  |      }t        ddd      }|j                         ddgk(  sJ t	        j
                  ||d       y )NrD   r   rY   r   Tr   )r	   rG   rx   tolistr    r!   rp   s        r&   4test_difference_interior_overlap_endpoints_preservedzITestRangeIndexSetOps.test_difference_interior_overlap_endpoints_preserved|  sg    %(#5A;''aA& QF***
fhd;r(   c                     t        ddd      }t        ddd      }|j                  |      }t        ddd      }|j                         ddgk(  sJ t        j                  ||d	
       y )Nir   rv   rm   irX   r4   r1   Tr   )r	   rx   r   r    r!   rp   s        r&   4test_difference_endpoints_overlap_interior_preservedzITestRangeIndexSetOps.test_difference_endpoints_overlap_interior_preserved  se    "b!$2r2&'b"a( RG+++
fhd;r(   c           	         t        t        d            }|dd }|j                  |      }t        g d      }t        j                  ||d       |d d d   }|j                  |      }t        g d      }t        j                  ||d       t        t        d            }|d dd	   }|j                  |      }t        g d
t        t        dd            z         }t        j                  ||d       |ddd	   }|j                  |      }t        g dt        t        dd            z         }t        j                  ||d       y )Nr5   rY   rD   )	r   r   r   rD   r3   r1   rv   rk   rl   Tr   )r   r   rD   r3   rv   rk   r   r   )r   rY   r3   rv   rl   r   rO   )r   r   rD   r1   rk   r5   )r   rG   rx   r    r!   list)r"   r}   r?   r%   r@   rz   s         r&   'test_difference_interior_non_preservingz<TestRangeIndexSetOps.test_difference_interior_non_preserving  s#   E"IAa&45
fhd; CaC&+,
fhd; E"IERE
&4b"+>>?
fhd;AbF&,tE"bM/BBC
fhd;r(   c                    t        j                  t        dd      d      }|j                  |      }t        j                  t        d      d      }t	        j
                  ||       |j                  |j                  d            }t	        j
                  ||j                  d              |d d j                  |dd        }t        g d	d      }t	        j
                  ||d
       t        j                  t        dd            }|j                  |      }t        j                  t        dd            }t	        j
                  ||       |j                  |dd        }t        g d      }t	        j
                  ||d
       y )Nr   r5   r   r8   r   ru   r6   r   )r   r   rk   rl   Tr      )r   r   rY   rD   r3   r1   rv   rk   rl   rO   rP   rm      )r	   rw   rG   symmetric_differencer    r!   r,   r   )r"   rq   r%   r@   rr   s        r&   test_symmetric_differencez.TestRangeIndexSetOps.test_symmetric_difference  s=    $$U1b\>**40((q>
fh/**8??5+AB
fdkk$&78cr//QR9E2
fhd;%%eBm4**51((q"6
fh/**595DE
fhd;r(   N)__name__
__module____qualname__pytestmarkparametrizer'   r.   rB   rE   rM   r	   r   r   rG   r   r   ri   rs   r{   r~   r   r   r   r   r    r(   r&   r   r      s   [[W&?@; A;8
N=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!$d5B?+d5B?.CCD	 1b!$1b!$1b!$d5B?+d5B?.CCD	 1b!$2r1%2r1%d5B?+d5R3C.DDE	 1c2&2sB'31%d5C,-U2sB5G0HHI	 1c1%1c2&1c1%1c1%	 1dB'1dC(3A&d5D"-.!45	 1c2&1c2&31%d5C,-C89	 ]JqM:a=*Q-H1c2&11c2&1c2&	 1c1%3S)1c1%1c1%	 1dB'4S)4A&d5D"-.$:;	 1dB'1c2&31%1dB'	 1a#1a$1a#1b!$	 1b!$2r3'2r1%j!	 1a#1a#l#l#	 1b!$b)1b!$1b!$	 1i i i 	 1b!1a 1b!1b!	CG	
P BU  KX
DYKX
D<"<H<(B"<<<6<r(   r   c                     t        | t              s3t        |       dkD  r$| dd | dd z
  }||d   k(  j                         rJ yyy)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     sS    
 eZ(SZ!^SbzE!"I%DGO((**** .<(r(   rN   r   c                    t        |dk7         t        |dk7         t        | ||      }t        |||      }|j                  |d       }t        |       t	        |j                               }	t	        |j                               }
|	j                  |
d       }t        j                  ||d       |j                  |d      }t        |       |	j                  |
d      }t        j                  ||d       y )Nr   r*   r2   r   F)r   r	   rx   r   r   to_numpyr    r!   )start1stop1step1start2stop2step2rq   rr   r%   
left_int64right_int64alts               r&   test_range_differencer     s     5A:
5A:feU+Dvue,E__U_.F$V,t}}'J()K


$

7C&#W5__U_/F$V,


%

8C&#W5r(   )r   r   
hypothesisr   r   r   stnumpyr   r   pandasr   r	   pandas._testing_testingr    r   r   integersr   r   r(   r&   <module>r      s   
 
   l< l<^+ BKKRBKKRBKKRBKKRBKKRBKKR66r(   