
    Mh~D                     `   S SK J r Jr  S SKJrJrJr  S SKrS SK	r	S SK
JrJr  S SKJr   " S S5      rS r\" \R$                  " SS	5      \R$                  " SS	5      \R$                  " SS	5      \R$                  " SS	5      \R$                  " SS	5      \R$                  " SS	5      5      S
 5       rg)    )datetime	timedelta)assumegiven
strategiesN)Index
RangeIndexc                       \ rS rSr\R
                  R                  S/ SQ5      S 5       rS rS r	S r
S r\R
                  R                  S	\" S
SS5      \" S
SS5      \" S
SS5      \" S
SS5      4\" S
SS5      \" SSS5      \" S
SS5      \" S
SS5      4\" S
SS5      \" SSS5      \" S
SS5      \" S
SS5      4\" S
SS5      \" S
SS5      \" S
SS5      \" S
SS5      4\" S
SS5      \" SSS5      \" SSS5      \" S
SS5      4\" S
SS5      \" SSS5      \" S
SS5      \" \" \" S
SS5      5      \" \" SSS5      5      -   5      4\" S
SS5      \" SSS5      \" S
SS5      \" \" \" S
SS5      5      \" \" SSS5      5      -   5      4\" S
SS5      \" SSS5      \" SSS5      \" \" \" S
SS5      5      \" \" SSS5      5      -   5      4\" S
SS5      \" SSS5      \" SSS5      \" \" \" S
SS5      5      \" \" SSS5      5      -   5      4\" S
SS5      \" S
SS5      \" S
SS5      \" S
SS5      4\" S
SS5      \" SSS5      \" SSS5      \" \" \" S
SS5      5      S/-   5      4\" S
SS5      \" SSS 5      \" SSS5      \" \" \" S
SS5      5      SS/-   5      4\" S
5      \" S
5      \" S
5      \" S
5      4\" S
SS5      \" S
5      \" S
SS5      \" S
SS5      4\" S
SS5      \" SS!S"5      \" S
S#S5      \" S
S#S5      4\" S
SS5      \" SS$S#5      \" SSS5      \" \" \" S
SS5      5      SS/-   5      4\" S
SS5      \" S
S%S&5      \" S'SS5      \" S
SS5      4\" S
SS5      \" SS(S5      \" S
S(S5      \" S
SS5      4\" S
SS5      \" SS)S5      \" SSS5      \" / S*Q5      4\" S
S+S5      \" SSS5      \" / S,Q5      \" / S,Q5      4\" S
SS5      \" / \R"                  S-9\" S
SS5      \" S
SS5      4\" S
5      \" / S.Q5      \" / S.Q5      \" / S.Q5      4\" S
S5      \" S
S5      \" S
S5      \" S
S5      4/S/ S09S1 5       rS2 rS3 rS4 rS5 rS6 rS7 rS8 rS9 rS:rg;)<TestRangeIndexSetOps   dtype)Nint64uint64c                 d   [        SSSSS9n[        X!S9nUR                  [        R                  5      nUR                  U5      n[        R                  " XBSS9  UR                  U5      n[        R                  " XCSS9  UR                  US	S  5      n[        R                  " XCS	S  SS9  US	S  R                  U5      n[        R                  " XCS	S  SS9  UR                  US S 5      n[        R                  " XCS S SS9  US S R                  U5      n[        R                  " XCS S SS9  g )
Nr         foostartstopstepnamer   Texact   )r	   r   astypenpfloat64intersectiontmassert_index_equal)selfr   indexfltresults        Y/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_setops.py"test_intersection_mismatched_dtype7TestRangeIndexSetOps.test_intersection_mismatched_dtype   s&    !%@e)ll2::& ##C(
f48!!%(
f6 ##CG,
f!"gT:QR%%e,
f!"gT: ##CG,
f"1gT:Ra%%e,
f"1gT:    c                 ^   [        SSSUS   S9nUR                  US S R                  US   5      US9n[        R                  " XCS S R                  US   5      SS9  US S R                  UR                  US   5      US9n[        R                  " XCS S R                  US   5      SS9  g )	Nr   r   r   r   r   sortTr   )r	   r    renamer!   r"   )r#   r-   namesr$   r&   s        r'   test_intersection_empty,TestRangeIndexSetOps.test_intersection_empty3   s    !%(C ##E"1I$4$4U1X$>T#J
fBQi&6&6uQx&@M r''U1X(>T'J
fBQi&6&6uQx&@Mr*   c           
         [        SSSS9n[        [        R                  " SS5      5      nUR	                  X1S9n[        [        R
                  " [        R                  " UR                  UR                  5      5      5      n[        R                  " XE5        UR	                  X!S9n[        [        R
                  " [        R                  " [        R                  " UR                  UR                  5      5      5      5      n[        R                  " XE5        [        SS5      nUR	                  X1S9n[        [        R
                  " [        R                  " UR                  UR                  5      5      5      n[        R                  " XESS	9  [        S
SS5      nUR	                  X1S9n[        [        R
                  " [        R                  " UR                  UR                  5      5      5      n[        R                  " XESS	9  UR	                  X!S9n[        R                  " XESS	9  [        SSS5      n[        S
SS5      nUR                  [        5      R	                  UR                  [        5      US9nUR	                  X1S9R                  [        5      n[        R                  " XE5        UR	                  XaS9R                  [        5      n[        R                  " XE5        [        S
SS9n[        S
SSSS9nUR	                  X1S9n[        SSSSS9n[        R                  " XE5        [        SSS5      nUR	                  X1S9n[        SSS5      n[        R                  " XE5        [        SSS5      nUR	                  X1S9n[        SSS5      n[        R                  " XE5        UR	                  X!S9n[        R                  " XE5        g )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_intersection&TestRangeIndexSetOps.test_intersection?   s    !4bii1o&##E#5ell!KLM
f/##E#5GGBJJr~~ellELLIJK
 	f/ 1a ##E#5ell!KLM
fg> 1a$##E#5ell!KLM
fg> ##E#5
fg> 2r2&1b"%<<$11%,,s2C$1O##E#5<<SA
f/ ##E#5<<SA
f/15) 1b!%0##E#5aAE2
f/2r2&##E#5aA&
f/ 1a###E#5aA&
f/##E#5
f/r*   c                     [        SSSUS   S9n[        SSSUS   S9nUR                  XAS9n[        SSSUS   S9n[        R                  " XV5        g )Nr   r8   r   r   r;      r,   )r	   r    r!   r"   )r#   r-   r/   r$   rB   r&   rC   s          r'   %test_intersection_non_overlapping_gcd:TestRangeIndexSetOps.test_intersection_non_overlapping_gcd~   s_    1b!%(31b!%(3##E#5aAE!H5
f/r*   c           	         [        SSSS9n[        [        S5       Vs/ s H$  n[        R                  " 5       [        U5      -   PM&     sn[        S9nUR                  XAS9n[        [        R                  " X$45      5      n[        R                  " XV5        UR                  X!S9n[        [        R                  " XB45      5      n[        R                  " XV5        g s  snf )Nr   r   r   r3   rH   r   r,   )r	   r   ranger   nowr   objectunionr   concatenater!   r"   )r#   r-   r$   irB   r&   rC   s          r'   test_union_noncomparable-TestRangeIndexSetOps.test_union_noncomparable   s    !4eAhGhx||~	!4hGvVU.78
f/U.78
f/ Hs   +Cz/idx1, idx2, expected_sorted, expected_notsortedr   r8   r   r6   r   ir7   ir         rH   r9      id   ir<   iiir:         f   2   iir4   i)r   r6   r<      )r   r   r   rH   r   )r   r6   r4   c                 F    [        U [        5      (       a  [        U 5      $ U $ )N)
isinstancer	   repr)xs    r'   <lambda>TestRangeIndexSetOps.<lambda>  s    Az!:!:d1gAAr*   )idsc                 d   UR                  US S9n[        R                  " XSSS9  UR                  USS9n[        R                  " XTSS9  UR                  US S9n[        UR                  UR
                  S9R                  US S9n[        R                  " XcSS9  [        R                  " XsSS9  g )Nr,   Tr   Fr;   r5   )rO   r!   r"   r   _valuesr   )r#   idx1idx2expected_sortedexpected_notsortedres1res2res3s           r'   test_union_sorted&TestRangeIndexSetOps.test_union_sorted   s    Z zz$Tz*
d4@zz$Uz+
ddCzz$Tz*T\\		288D8I
d4@
d7Cr*   c                     [        [        SSS5      5      n[        [        SSS5      5      nUR                  U5      n[        / SQ5      n[        R
                  " X4SS9  g )	Nr   r   rH   r   r   )
r   r   rH   r6      	   rV            Tr   )r	   rL   rO   r   r!   r"   r#   leftrightr&   rC   s        r'   test_union_same_step_misaligned4TestRangeIndexSetOps.test_union_same_step_misaligned*  sO    %2q/*5B?+E";<
fd;r*   c                 (   [         R                  " [        SS5      SS9nUR                  U5      n[         R                  " [        S5      SS9n[        R
                  " X#SS9  UR                  UR                  S5      5      n[        R
                  " X!R                  S 5      SS9  UR                  US S	 5      n[        R
                  " X!S	S  SS9  UR                  US
S  5      n[        R
                  " X!S S
 SS9  US S S2   R                  US
S  5      n[        R
                  " X!S S
 SS9  US S S2   R                  US
S  SS9n[        R
                  " X!S S
 S S S2   SS9  US S S2   R                  US
S  S S S2   5      n[        R
                  " X!S S
 SS9  US S S2   R                  US
S  S S S2   SS9n[        R
                  " X!S S
 S S S2   SS9  UR                  USS 5      n[        / SQSS9n[        R
                  " X#SS9  g )Nr   r8   r   r;   r   Tr   barr^   r]   r7   Fr,   r   r4   )r   r      rr   rs   )r	   
from_rangerL   
differencer!   r"   r.   r   r#   objr&   rC   s       r'   test_difference$TestRangeIndexSetOps.test_difference3  s     ##E!RLu=$((q>
fd; 67
fjj&6dCBQ(
f!"gT:BC)
f#2hd; TrT%%c"#h/
f#2hd;TrT%%c"#hU%;
f#2httnDATrT%%c"#httn5
f#2hd;TrT%%c"#httn5%A
f#2httnDAAa)u5
fd;r*   c                    [        [        S5      5      S S S2   n[        [        SS5      5      nUR                  U5      n[        [        S5      5      n[        R                  " X4SS9  UR                  USS9nUS S S2   n[        R                  " X4SS9  [        SS	5      nUR                  US S9nUS S S2   n[        R                  " X4SS9  g )
NrH   r7   r^   Tr   Fr,   r8   rV   )r   rL   r   r!   r"   )r#   idxrB   r&   rC   s        r'   test_difference_sort)TestRangeIndexSetOps.test_difference_sortW  s     E!Hodd#eAqk"&q?
fd;E2DbD>
fd; b"D1tt9
fd;r*   c                    [         R                  " [        SS5      SS9nUR                  US S S2   5      nUSS S2   n[        R
                  " X#SS9  US S S2   R                  US S S2   S	S
9n[        R
                  " X#S S S2   SS9  UR                  USS S2   5      nUS S S2   n[        R
                  " X#SS9  US S S2   R                  USS S2   S	S
9n[        R
                  " X#S S S2   SS9  g )Nr   r8   r   r;   r   Tr   r7   Fr,   )r	   r   rL   r   r!   r"   r   s       r'   test_difference_mismatched_step4TestRangeIndexSetOps.test_difference_mismatched_stepk  s    ##E!RLu=CaC)qt!t9
fd;TrT%%c#A#hU%;
fttnDAADqD	*ss8
fd;TrT%%c!$Q$ie%<
fttnDAr*   c                     [        [        S5      5      n[        [        SS5      5      nUR                  U5      n[        SSS5      nUR                  5       SS/:X  d   e[        R
                  " X4SS9  g )NrH   r   r^   r   Tr   )r	   rL   r   tolistr!   r"   rw   s        r'   4test_difference_interior_overlap_endpoints_preservedITestRangeIndexSetOps.test_difference_interior_overlap_endpoints_preserved|  se    %(#5A;''aA& QF***
fd;r*   c                     [        SSS5      n[        SSS5      nUR                  U5      n[        SSS5      nUR                  5       SS/:X  d   e[        R                  " X4S	S
9  g )Nir   r~   rt   ir]   r7   r4   Tr   )r	   r   r   r!   r"   rw   s        r'   4test_difference_endpoints_overlap_interior_preservedITestRangeIndexSetOps.test_difference_endpoints_overlap_interior_preserved  sc    "b!$2r2&'b"a( RG+++
fd;r*   c           	      ~   [        [        S5      5      nUSS nUR                  U5      n[        / SQ5      n[        R                  " X4SS9  US S S2   nUR                  U5      n[        / SQ5      n[        R                  " X4SS9  [        [        S5      5      nUS SS	2   nUR                  U5      n[        / S
Q[        [        SS5      5      -   5      n[        R                  " X4SS9  USSS	2   nUR                  U5      n[        / SQ[        [        SS5      5      -   5      n[        R                  " X4SS9  g )Nr8   r^   rH   )	r   r   r   rH   r6   r4   r~   rr   rs   Tr   )r   r   rH   r6   r~   rr   r   r   )r   r^   r6   r~   rs   r   rU   )r   r   rH   r4   rr   r8   )r   rL   r   r!   r"   list)r#   r   rB   r&   rC   r   s         r'   'test_difference_interior_non_preserving<TestRangeIndexSetOps.test_difference_interior_non_preserving  s   E"IAa&45
fd; CaC&+,
fd; E"IERE
&4b"+>>?
fd;AbF&,tE"bM/BBC
fd;r*   c                     [         R                  " [        SS5      SS9nUR                  U5      n[         R                  " [        S5      SS9n[        R
                  " X#5        UR                  UR                  S5      5      n[        R
                  " X!R                  S 5      5        US S R                  USS  5      n[        / S	QSS9n[        R
                  " X#S
S9  [         R                  " [        SS5      5      nUR                  U5      n[         R                  " [        SS5      5      n[        R
                  " X#5        UR                  USS  5      n[        / SQ5      n[        R
                  " X#S
S9  g )Nr   r8   r   r;   r   r}   r9   r   )r   r   rr   rs   Tr      )r   r   r^   rH   r6   r4   r~   rr   rs   rU   rV   rt      )r	   r   rL   symmetric_differencer!   r"   r.   r   )r#   rx   r&   rC   ry   s        r'   test_symmetric_difference.TestRangeIndexSetOps.test_symmetric_difference  s3    $$U1b\>**40((q>
f/**8??5+AB
fkk$&78cr//QR9E2
fd;%%eBm4**51((q"6
f/**595DE
fd;r*    N)__name__
__module____qualname____firstlineno__pytestmarkparametrizer(   r0   rE   rI   rR   r	   r   r   rL   r   r   ro   rz   r   r   r   r   r   r   r   __static_attributes__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                     [        U [        5      (       d8  [        U 5      S:  a(  U SS U SS -
  nXS   :H  R                  5       (       a   eggg)zd
Check that we either have a RangeIndex or that this index *cannot*
be represented as a RangeIndex.
r   Nr7   r   )r`   r	   lenall)r$   diffs     r'    assert_range_or_not_is_rangeliker     sW    
 eZ((SZ!^SbzE!"I%GO((***** .<(r*   rT   r   c                    [        US:g  5        [        US:g  5        [        XU5      n[        X4U5      nUR                  US S9n[        U5        [	        UR                  5       5      n	[	        UR                  5       5      n
U	R                  U
S S9n[        R                  " XSS9  UR                  USS9n[        U5        U	R                  U
SS9n[        R                  " XSS9  g )Nr   r,   r5   r   F)r   r	   r   r   r   to_numpyr!   r"   )start1stop1step1start2stop2step2rx   ry   r&   
left_int64right_int64alts               r'   test_range_differencer     s     5A:
5A:fU+Dve,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<^+ KKRKKRKKRKKRKKRKKR66r*   